Malicious code in kepler (npm)
The kepler npm package (version 2.0.999) contains malicious code that injects an off-registry, unverified dependency (flag-serial-object-syntax) from a third-party host (artifacts.yosiroute.com) with install scripts enabled, allowing arbitrary code execution on installation.
- Disclosed
- Last updated
- Blast radius
- Any developer or system installing the kepler npm package
- Ecosystems
- Attack vectors
- Affected entities
- keplernpm package with malicious dependency injection
The kepler npm package version 2.0.999 was found to declare a runtime dependency, flag-serial-object-syntax, as an HTTP URL to a third-party host (https://artifacts.yosiroute.com/npm/flag-serial-object-syntax) rather than resolving it from the npm registry. The package's shrinkwrap configuration marks this dependency with hasInstallScript: true, enabling automatic execution of lifecycle scripts during installation.\n\nWhen a developer runs npm install kepler, the package manager fetches an unpinned, unverified tarball from artifacts.yosiroute.com and executes its lifecycle scripts with the installer's privileges. The URL contains no version pinning and no integrity metadata, meaning its contents can be changed at any time by the operator of the third-party host.\n\nThe kepler package itself contains only placeholder metadata (author "Package Registry", repository "github.com/example/...") unrelated to yosiroute.com and ships no legitimate first-party code that would justify sourcing a dependency off-registry. This dependency-tree-hijack pattern—an off-registry, mutable, install-scripted tarball pulled transitively—enables arbitrary code execution under the installer's privileges.\n\nThe incident was identified by the OpenSSF's malicious-packages project and reported via GitHub Security Advisory GHSA-4vx4-f3cp-29qp.
Indicators of compromise
- Packages
- kepler@2.0.999
- Domains
- artifacts.yosiroute.com
Remediation
- Remove kepler from all projects and dependencies immediately
- Audit npm install logs and system activity during any period when kepler was installed
- Review and rotate any credentials or secrets that may have been exposed on affected systems
- Update to a patched version of kepler if one is released, or use an alternative package
- Consider using npm audit and supply chain security tools to detect similar off-registry dependencies
- Enable npm package integrity verification and restrict installation from non-registry sources
Sources
- GitHub Advisory GHSA-4vx4-f3cp-29qp · GitHub Advisory Database
Cite this entry
"Malicious code in kepler (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 5, 2026; last updated August 5, 2026. https://supplychainattack.org/incident/malicious-code-in-kepler-npm-fcrn0x
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 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 - containedcritical
Malicious code in alelo-utils (npm)
Malicious code in alelo-utils npm package version 99.0.0 exfiltrates system information and credentials during installation. The package uses preinstall and postinstall scripts to collect hostname, username, environment variables, .npmrc tokens, .env files, and cloud credentials, sending them to an attacker-controlled IP address.
npmCompromised packageDependency confusion - resolvedcritical
Malicious code in alelo-sdk (npm)
alelo-sdk@99.0.0 on npm contains malicious lifecycle scripts that harvest sensitive environment data (credentials, tokens, secrets) and exfiltrate it to a hardcoded IP endpoint. The package uses dependency confusion tactics targeting a private 'alelo' scope with an inflated version number.
npmCompromised packageDependency confusion