Malicious code in commonweb-balance (npm)
commonweb-balance@99.9.1 is a malicious npm package that serves as a lure to pull an out-of-registry dependency (ltidisafe) from a mutable Google Cloud Storage bucket, bypassing npm registry review. The package contains no legitimate functionality and was designed to inject untrusted code into the dependency tree.
- Disclosed
- Last updated
- Blast radius
- All npm users who installed commonweb-balance@99.9.1
- Ecosystems
- Attack vectors
- Affected entities
- commonweb-balance · 99.9.1
commonweb-balance@99.9.1 was published to npm as a malicious package with no legitimate functionality. The package contains only an empty index.js file and declares a single runtime dependency on ltidisafe, which is resolved from a direct tarball URL (https://ltidi.storage.googleapis.com/depenconf/ltidisafe-3.4.5.tgz) rather than from the npm registry.
On installation, npm downloads and executes whatever bytes are served at that external URL, bringing untrusted code into the installer's node_modules outside of npm's security review process. The Google Cloud Storage bucket is unrelated to the package publisher (no matching author or homepage metadata) and is mutable, meaning the bucket owner can change the served tarball contents at any time without republishing to npm.
This attack pattern matches a dependency-chain dropper or lure technique: the host package has no purpose other than to pull out-of-registry code into the dependency tree of unsuspecting users. The malicious package was identified by the OpenSSF's malicious-packages project.
Indicators of compromise
- Packages
- commonweb-balance@99.9.1
- ltidisafe
- Domains
- ltidi.storage.googleapis.com
Remediation
- Remove commonweb-balance@99.9.1 from all package.json files and lock files
- Audit node_modules for the presence of ltidisafe or other unexpected packages installed from the external URL
- Review any systems where commonweb-balance@99.9.1 was installed for signs of compromise
- Use npm audit to check for this and related malicious packages
- Consider using npm package lock files and integrity verification to prevent installation of packages from untrusted sources
Sources
- GitHub Advisory GHSA-h829-pq72-xf4j · GitHub Advisory Database
Cite this entry
"Malicious code in commonweb-balance (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 7, 2026; last updated August 7, 2026. https://supplychainattack.org/incident/malicious-code-in-commonweb-balance-npm-157glx
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 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 - 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 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 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