Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in @usaa-grp-personal-profile/personal-profile-common (npm)

Malicious package @usaa-grp-personal-profile/personal-profile-common version 999.0.0 published to public npm as a dependency-confusion attack targeting an organization's internal registry. The package contains preinstall and postinstall hooks that exfiltrate hostname, username, and working directory to an attacker-controlled OAST endpoint on every install.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Organizations using internal npm registries with the @usaa-grp-personal-profile scope; any system that installed the malicious package version 999.0.0
Ecosystems
Attack vectors
Affected entities
  • @usaa-grp-personal-profile/personal-profile-common · 999.0.0

A malicious npm package was published under the internal-looking scope @usaa-grp-personal-profile with version 999.0.0, consistent with a dependency-confusion attack designed to target an organization's private npm registry. The package was discovered by Amazon Inspector and credited to the OpenSSF malicious-packages project.\n\nThe malicious code is embedded in preinstall and postinstall hooks that execute automatically during npm install. The beacon.js script reads sensitive system information including os.hostname(), os.userInfo().username, and process.cwd(), then hex-encodes these values into DNS labels and performs dns.lookup queries against a subdomain of oastify.com (a Burp Collaborator out-of-band service). This exfiltration occurs automatically without user invocation and transmits installer host, user, and working-directory identifiers to an attacker-controllable endpoint.\n\nThe attack is designed to identify which organizations or individuals attempt to install packages from the internal scope, enabling reconnaissance for further targeted attacks.

Indicators of compromise

Packages
  • @usaa-grp-personal-profile/personal-profile-common@999.0.0
Domains
  • oastify.com

Remediation

  • Immediately remove version 999.0.0 of @usaa-grp-personal-profile/personal-profile-common from any systems where it was installed
  • Audit npm install logs and package-lock.json files to identify if this package was ever installed in your environment
  • Review network logs for DNS queries to oastify.com subdomains from affected systems
  • Implement npm registry authentication and access controls to prevent dependency-confusion attacks
  • Use npm audit and supply-chain security tools to detect similar malicious packages
  • Consider using a private npm registry proxy or allowlist to control which packages can be installed
  • Monitor for any suspicious activity on systems where this package may have been installed, as hostname, username, and working directory were exfiltrated

Sources

  1. GitHub Advisory GHSA-rh37-fc24-hw7w · GitHub Advisory Database

Cite this entry

"Malicious code in @usaa-grp-personal-profile/personal-profile-common (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 23, 2026; last updated August 23, 2026. https://supplychainattack.org/incident/malicious-code-in-usaa-grp-personal-profile-personal-profile-common-npm-ze39zl

Suggest a correction

Found an error or have a newer source? Corrections to factual errors take priority over new entries.

  1. containedcritical

    Malicious code in stillm4ddpocs-demo-sprocket (npm)

    The npm package stillm4ddpocs-demo-sprocket version 999.9.12 contains malicious code that exfiltrates system and project metadata via multiple channels (HTTPS, HTTP, and DNS) to a hardcoded callback host. The package uses a high version number to exploit dependency-confusion attacks against organizations with internal packages of the same name.

    npmCompromised packageDependency confusion
  2. resolvedcritical

    Malicious code in lumen-pages-community (npm)

    lumen-pages-community@9.9.9 on npm contains malicious code that executes a postinstall hook to exfiltrate installer metadata (hostname, username, working directory, platform, Node version, CI environment, npm user-agent) to a hardcoded webhook.site URL. The high version number and lack of functionality suggest a dependency-confusion attack.

    npmCompromised packageDependency confusion
  3. resolvedcritical

    Malicious code in @gfe/lx-watcher (npm)

    The npm package @gfe/lx-watcher contained malicious code that exfiltrated host metadata (hostname, OS username, working directory, timestamp) via npm lifecycle hooks to a hardcoded webhook.site endpoint. The package exploited dependency confusion by using a scoped name (@gfe/*) with a no-op stub, allowing silent resolution against the public registry while leaking host identifiers.

    npmDependency confusionCompromised package
  4. resolvedcritical

    Malicious code in gemini-cli-a2a-server (npm)

    A malicious npm package named gemini-cli-a2a-server was published to exploit dependency confusion, mimicking a private Google internal component. The postinstall script collected host identifiers and exfiltrated them to a hardcoded external endpoint.

    npmDependency confusionCompromised package