Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

Malicious code in bcc-design-icons (npm)

bcc-design-icons@9999.0.0 on npm contains malicious postinstall script that exfiltrates hostname and package name to attacker-controlled IP 91.201.215.48:8000. The package lacks expected icon-library functionality and exhibits characteristics of a dependency-confusion attack targeting internal/private npm installers.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any npm installer that pulled bcc-design-icons@9999.0.0
Ecosystems
Attack vectors
Affected entities
  • bcc-design-icons · 9999.0.0

bcc-design-icons version 9999.0.0 published to npm contains a postinstall script (node./notify.js) that executes automatically during package installation. The script performs an HTTP GET request to a hardcoded bare-IP endpoint (http://91.201.215.48:8000/npm-poc-bcc) with query parameters containing the system hostname and package name.

The package does not contain any icon-library functionality despite its name, and the version number (9999.0.0) combined with the callback-to-bare-IP behavior are consistent with a dependency-confusion attack. The attack appears designed to identify internal or private npm installers by exfiltrating hostname data to an attacker-controlled destination without installer consent.

This incident was identified by Amazon Inspector and credited to the OpenSSF malicious-packages project.

Indicators of compromise

Packages
  • bcc-design-icons
IPs
  • 91.201.215.48

Remediation

  • Remove bcc-design-icons@9999.0.0 from all environments immediately
  • Audit npm install logs to identify any systems that installed this package version
  • Review network logs for outbound connections to 91.201.215.48:8000 from affected systems
  • Verify that legitimate bcc-design-icons package (if needed) comes from a trusted source with proper versioning
  • Consider implementing npm package allow-lists or registry proxies to prevent dependency-confusion attacks
  • Monitor for similar high-version-number packages that lack expected functionality

Sources

  1. GitHub Advisory GHSA-73q2-99qx-v576 · GitHub Advisory Database

Cite this entry

"Malicious code in bcc-design-icons (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 18, 2026; last updated August 18, 2026. https://supplychainattack.org/incident/malicious-code-in-bcc-design-icons-npm-rd0o2j

Suggest a correction

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

  1. 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.

    npmDependency confusionCompromised package
  2. 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
  3. 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
  4. 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