Malicious code in verify-cli (npm)
The npm package verify-cli version 99.0.0 contained malicious code that exfiltrated system information and sensitive files to an out-of-band endpoint during installation. The package exhibited characteristics of a typosquatting/dependency-confusion attack with implausible metadata.
- Disclosed
- Last updated
- Blast radius
- Any developer or system that ran `npm install verify-cli` during the malicious package's availability.
- Ecosystems
- Attack vectors
- Affected entities
- verify-cli · 99.0.0
The npm package verify-cli (version 99.0.0) was published with malicious code designed to execute automatically during installation. The package.json declared a preinstall script that ran node index.js before the package was fully installed.
The index.js file used child_process and curl to exfiltrate sensitive system information to a hardcoded out-of-band endpoint at 5f8a1ed70fb7761d678agw9bucryyyyyb.oast.site. The exfiltrated data included the output of whoami, hostname, and id commands, as well as base64-encoded contents of /etc/passwd, /etc/hosts, and (if readable) /etc/shadow.
The package metadata was inconsistent with a legitimate SDK: it declared version 99.0.0 (implausibly high), used a placeholder description ("Nodejs SDK for Redacted"), and listed a nonexistent dependency. These characteristics are consistent with a dependency-confusion or typosquatting attack.
The incident was identified and credited to the OpenSSF's malicious-packages repository.
Indicators of compromise
- Packages
- verify-cli
- Domains
- 5f8a1ed70fb7761d678agw9bucryyyyyb.oast.site
Remediation
- Immediately uninstall verify-cli from all systems where it was installed
- Audit npm install logs to identify when and where the package was installed
- Assume compromise of any system that installed this package; review system logs and network traffic for exfiltration
- Change credentials and secrets on affected systems
- Review /etc/passwd, /etc/hosts, and /etc/shadow files for unauthorized modifications
- Monitor the OAST endpoint for any data exfiltration attempts
- Implement npm package verification and scanning in CI/CD pipelines to detect malicious packages before installation
Sources
- GitHub Advisory GHSA-3xrr-9gq8-rv8h · GitHub Advisory Database
Cite this entry
"Malicious code in verify-cli (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 12, 2026; last updated August 12, 2026. https://supplychainattack.org/incident/malicious-code-in-verify-cli-npm-193y0h
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 @finaxis/common-js (npm)
The npm package @finaxis/common-js was published with a README and keywords copied from lodash v4.18.1, but contained a heavily obfuscated Xelis (XEL) proof-of-work cryptominer instead of lodash functionality. Consumers installing this package would unknowingly run a covert CPU/GPU miner on their systems.
npmCompromised packageTyposquatting - resolvedcritical
Malicious code in akamai-sensor (npm)
A malicious npm package named akamai-sensor impersonated Akamai's legitimate sensor_data anti-bot SDK. The package contained hidden JavaScript code concealed using invisible Unicode characters and implemented a dynamic command-and-control channel via a Google Calendar dead-drop, enabling arbitrary code execution on installation.
npmCompromised packageTyposquatting - resolvedcritical
Malicious code in depcruise-wrap-stream-in-html (npm)
depcruise-wrap-stream-in-html@99.9.1 is a malicious npm package that mimics an internal helper of dependency-cruiser. It is a hollow package that downloads and executes arbitrary code from a Google Cloud Storage bucket during installation.
npmCompromised packageDependency confusionTyposquatting - resolvedcritical
Malicious code in wct-st (npm)
The npm package wct-st contained malicious code in its postinstall lifecycle script that collected and exfiltrated host identifiers to a remote endpoint. The package name resembles the deprecated web-component-tester, consistent with a typosquatting attack.
npmCompromised packageTyposquatting