Malicious code in o0o9 (npm)
The npm package o0o9 contained malicious code that executed a PowerShell process as a top-level side effect upon module import. The package's index.js imported child_process and invoked spawn("powershell",...) at line 27, causing arbitrary code execution on Windows systems during installation or import without user interaction.
- Disclosed
- Last updated
- Blast radius
- Any developer or system that installed the malicious o0o9 package via npm and required/imported it, particularly on Windows systems.
- Ecosystems
- Attack vectors
- Affected entities
- o0o9npm package containing malicious code
The npm package o0o9 was found to contain malicious code designed to execute arbitrary commands on Windows systems. Upon import or require of the module, the package's main entry point (index.js) would immediately spawn a PowerShell process as a top-level side effect, independent of any legitimate library functionality.\n\nThe malicious behavior was triggered at line 27 of index.js, where the child_process module was imported and spawn() was invoked with PowerShell as the target. This represents an install-time or import-time execution payload rather than an optional API call, meaning any developer who installed and loaded the package would trigger the malicious code without explicit action.\n\nThe vulnerability was particularly dangerous on Windows systems, where PowerShell execution could be leveraged for further compromise. The malicious package was identified and reported through the OpenSSF's malicious-packages repository (MAL-2026-14277).\n\nThe package has been removed from npm and the incident is considered resolved.
Indicators of compromise
- Packages
- o0o9
Remediation
- Remove the o0o9 package from all projects and dependencies immediately
- Audit npm install logs and package-lock.json files to identify if o0o9 was ever installed
- Scan systems that may have installed this package for signs of compromise or unauthorized PowerShell execution
- Review npm audit and dependency management tools to detect similar malicious packages
- Consider using npm package signing verification and supply chain security tools to prevent future incidents
Sources
- GitHub Advisory GHSA-w56x-ghfq-qjf4 · GitHub Advisory Database
Cite this entry
"Malicious code in o0o9 (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 19, 2026; last updated August 19, 2026. https://supplychainattack.org/incident/malicious-code-in-o0o9-npm-3gk9j6
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