Malicious code in chameleon-src (npm)
The npm package chameleon-src contained malicious code in its preinstall lifecycle script that collected and exfiltrated installer IP addresses and hostnames to an attacker-controlled Sentry project without user consent or disclosure.
- Disclosed
- Last updated
- Blast radius
- All npm users who installed chameleon-src
- Ecosystems
- Attack vectors
- Affected entities
- chameleon-srcnpm package
The npm package chameleon-src was found to contain malicious code embedded in its preinstall lifecycle script (examples/verify.js). During installation, the script executed code that collected sensitive information about the installer without consent or disclosure.\n\nThe malicious behavior included: invoking a hardcoded Sentry DSN initialization with sendDefaultPii enabled, fetching the installer's public IP address from Cloudflare's trace endpoint, attaching the IP and hostname as user metadata to a Sentry event, deliberately triggering an exception to force event capture, and flushing the data to ensure upload before process exit. This telemetry exfiltration occurred on every npm install of the package.\n\nThe package's name and description did not disclose any telemetry collection, making the behavior deceptive. The malicious code was identified by Amazon Inspector and credited to the OpenSSF malicious-packages project.\n\nUsers who installed this package had their public IP addresses and hostnames transmitted to the attacker's Sentry project (o4510485815754752.ingest.us.sentry.io, project 4511805473488896) without any opt-in mechanism or configuration option to prevent it.
Indicators of compromise
- Packages
- chameleon-src
- Domains
- o4510485815754752.ingest.us.sentry.io
- www.cloudflare.com
Remediation
- Remove chameleon-src from all projects and dependencies
- Audit npm install logs to identify when the package was installed and from which systems
- Consider the public IP addresses and hostnames used during installation as potentially compromised
- Review Sentry project access logs if you have visibility into the attacker's Sentry instance
- Update npm packages and verify no other malicious packages are present in your dependency tree
- Implement npm package scanning and verification tools to detect malicious packages before installation
Sources
- GitHub Advisory GHSA-4mhp-g6gh-v4q8 · GitHub Advisory Database
Cite this entry
"Malicious code in chameleon-src (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 19, 2026; last updated August 19, 2026. https://supplychainattack.org/incident/malicious-code-in-chameleon-src-npm-1m1ocf
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