Malicious code in resolve-audit (npm)
resolve-audit@99.9.1 is a malicious stub package that uses dependency-confusion tactics and fetches an arbitrary tarball from a mutable Google Cloud Storage bucket, executing lifecycle scripts on installation.
- Disclosed
- Last updated
- Blast radius
- Any developer or CI/CD system that installed resolve-audit@99.9.1
- Ecosystems
- Attack vectors
- Affected entities
- resolve-audit · 99.9.1
resolve-audit@99.9.1 is a stub npm package (exports an empty object) designed to exploit dependency-confusion vulnerabilities. The package.json declares a single dependency, ltidisafe, as a direct HTTPS tarball URL pointing to an anonymous, mutable Google Cloud Storage bucket (https://ltidi.storage.googleapis.com/depenconf/ltidisafe-3.6.6.tgz) rather than resolving through the npm registry.\n\nWhen installed, npm fetches this arbitrary tarball without version-by-hash pinning, and any lifecycle scripts embedded in the tarball execute on the installer's system. The version number 99.9.1 is characteristic of dependency-confusion lures designed to win resolution against a private-registry package of the same name.\n\nThe malicious package was identified by the OpenSSF's malicious-packages project and reported via Amazon Inspector. The attack vector combines dependency-confusion tactics with direct tarball injection to achieve code execution during installation.
Indicators of compromise
- Packages
- resolve-audit@99.9.1
- Domains
- ltidi.storage.googleapis.com
Remediation
- Remove resolve-audit@99.9.1 from all package.json files and lock files
- Audit npm install logs for any installations of resolve-audit@99.9.1
- Review systems where resolve-audit@99.9.1 was installed for signs of compromise
- Use npm audit to identify any remaining malicious packages
- Consider using npm package lock files and integrity verification to prevent similar attacks
- Monitor for private-registry packages named resolve-audit that may have been targeted by this confusion attack
Sources
- GitHub Advisory GHSA-m9fv-2g5q-rhhh · GitHub Advisory Database
Cite this entry
"Malicious code in resolve-audit (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 13, 2026; last updated August 13, 2026. https://supplychainattack.org/incident/malicious-code-in-resolve-audit-npm-0clyco
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 bcc-design-icons (npm)
bcc-design-icons@9999.0.0 on npm contains malicious postinstall script that exfiltrates hostname and package name to attacker-controlled IP 91.201.215.48:8000. The package lacks expected icon-library functionality and exhibits characteristics of a dependency-confusion attack targeting internal/private npm installers.
npmDependency confusionCompromised package - resolvedcritical
Malicious code in bcc-design (npm)
bcc-design@9999.0.0 on npm is a dependency-confusion beacon package with no legitimate functionality. Its postinstall script exfiltrates the installer's hostname and system metadata to an attacker-controlled IP endpoint.
npmDependency confusionCompromised package - resolvedcritical
Malicious code in fastly-vcl-language-client (npm)
The npm package fastly-vcl-language-client contained malicious code in a preinstall script that collected system information and CI environment variables, exfiltrating data to an external webhook endpoint. The package appears to be a dependency-confusion attack targeting internal Fastly tooling.
npmCompromised packageDependency confusion - 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