Malicious code in broadcast-graphics-mcp (npm)
The npm package broadcast-graphics-mcp contained malicious code in its postinstall script that automatically exfiltrated host metadata (hostname, platform, architecture, Node version, timestamp) to a remote attacker-controlled endpoint during installation. The package was labeled as a 'security research canary' but functioned as a data-stealing trojan.
- Disclosed
- Last updated
- Blast radius
- All npm users who installed broadcast-graphics-mcp
- Ecosystems
- Attack vectors
- Affected entities
- broadcast-graphics-mcpnpm package with malicious postinstall script
The npm package broadcast-graphics-mcp contained a malicious postinstall script that executed automatically upon npm install. The script collected host identifiers from the installer's machine, including os.hostname(), platform, architecture, Node version, package name, npm lifecycle event, and timestamp.
This collected metadata was then POSTed as JSON to a hardcoded remote endpoint at 2obx43du.instances.poc.jchunt.top at the path /broadcast-graphics-mcp. The destination was not a first-party or user-configurable endpoint, meaning installation of the package unconditionally leaked installer-side identity data to an author-controlled server.
Although the package self-labeled as a 'security research canary', this self-labeling did not change its behavior. Installing the package resulted in automatic exfiltration of host metadata to a remote attacker without user consent or awareness.
The incident was identified and credited to the OpenSSF's malicious-packages repository.
Indicators of compromise
- Packages
- broadcast-graphics-mcp
- Domains
- 2obx43du.instances.poc.jchunt.top
Remediation
- Immediately uninstall broadcast-graphics-mcp from all systems
- Review npm install logs to identify when the package was installed and which hosts were affected
- Assume host metadata (hostname, platform, architecture, Node version) was exfiltrated to the attacker
- Monitor affected systems for further compromise or lateral movement
- Audit npm dependencies for similar malicious postinstall scripts
- Consider using npm audit and supply chain security tools to detect malicious packages before installation
Sources
- GitHub Advisory GHSA-rh95-w86h-pprv · GitHub Advisory Database
Cite this entry
"Malicious code in broadcast-graphics-mcp (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 19, 2026; last updated August 19, 2026. https://supplychainattack.org/incident/malicious-code-in-broadcast-graphics-mcp-npm-63q66i
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- containedcritical
Malicious code in 3-buildsight-web (npm)
The npm package 3-buildsight-web contains malicious code that fetches and executes arbitrary JavaScript from a remote Bitbucket URL on module load, granting full page privileges to an unverified third party.
npmCompromised package - 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 - resolvedcritical
Malicious code in create-coin (npm)
create-coin@20.1.1 on npm contained malicious postinstall code that collected sensitive environment variables, credentials, and host reconnaissance data. The package impersonated an esbuild platform build and exfiltrated data to a hardcoded endpoint.
npmCompromised packageTyposquatting - resolvedcritical
Malicious code in @syncraft-labs/vue (npm)
The npm package @syncraft-labs/vue version 0.4.1 contained malicious obfuscated code in its ESM build that implements a blockchain-hosted C2 dropper (EtherHiding pattern), enabling remote code execution on any consumer importing the package.
npmCompromised package