Malicious code in poc-ch4rlygr (npm)
The npm package poc-ch4rlygr contained malicious code that exfiltrated system metadata and environment variables (including secrets like AWS_*, NPM_TOKEN, GITHUB_TOKEN) to a hardcoded OAST endpoint on require/import.
- Disclosed
- Last updated
- Blast radius
- Any developer or CI/CD system that installed poc-ch4rlygr during the affected period; environment variables and system metadata were exfiltrated.
- Ecosystems
- Attack vectors
- Affected entities
- poc-ch4rlygrnpm package containing malicious code in index.js
The npm package poc-ch4rlygr was found to contain malicious code in its index.js file. Upon require() or import, the code collected sensitive system information including os.hostname(), os.arch(), __dirname, os.userInfo().username, and the full contents of process.env, then sent this data via HTTPS GET request to the hardcoded domain zuxsp9k9vyk5y45z1n2hv0orhin9b2zr.oastify.com (identified as a Burp Collaborator/OAST subdomain).\n\nThe exfiltration occurred at module load time, making it difficult to prevent without careful inspection. Any secrets present in the installer's environment—including AWS credentials, NPM tokens, GitHub tokens, and CI provider tokens—were leaked verbatim to the attacker-controlled endpoint.\n\nWhile package.json declared a postinstall script (tu-script.js), this file was not included in the tarball; the import-time code in index.js was the primary exfiltration mechanism.\n\nThe incident was identified by Amazon Inspector and credited to the OpenSSF malicious-packages project.
Indicators of compromise
- Packages
- poc-ch4rlygr
- Domains
- zuxsp9k9vyk5y45z1n2hv0orhin9b2zr.oastify.com
Remediation
- Immediately uninstall poc-ch4rlygr from all systems and CI/CD pipelines
- Rotate all secrets and tokens that may have been exposed (AWS credentials, NPM tokens, GitHub tokens, CI provider tokens)
- Audit npm package.json and lock files for any references to poc-ch4rlygr and remove them
- Review environment variable logs and access patterns for any unauthorized activity following installation
- Use npm audit to check for other malicious packages
- Implement package verification and scanning in CI/CD pipelines to detect suspicious code patterns
Sources
- GitHub Advisory GHSA-jh29-j9hv-jp8j · GitHub Advisory Database
Cite this entry
"Malicious code in poc-ch4rlygr (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 7, 2026; last updated August 7, 2026. https://supplychainattack.org/incident/malicious-code-in-poc-ch4rlygr-npm-vn1p9j
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedcritical
Malicious code in rust-testing-utils (npm)
The npm package rust-testing-utils contained malicious code that impersonates the pino logger and executes remotely-fetched code with arbitrary privileges. The package spawns a child process that decodes a hardcoded URL, fetches attacker-controlled content, and executes it via Function constructor with full module-loading capability.
npmCompromised packageMalicious commit - 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 - containedcritical
Malicious code in @syncraft-labs/react (npm)
The npm package @syncraft-labs/react contained obfuscated malicious code in its ESM distribution that implements the EtherHiding pattern, fetching and executing arbitrary code from an Ethereum smart contract via RPC endpoints. The tampering occurred post-build in the dist/index.js artifact.
npmCompromised package - containedcritical
Malware in hydration-dim-kit
Malware was discovered in the npm package hydration-dim-kit. Any computer with this package installed or running should be considered fully compromised. All secrets and keys must be rotated immediately from a different computer.
npmCompromised package