Malicious code in sm-apikey-model (npm)
The npm package sm-apikey-model versions 99.0.0 and 99.0.1 contain malicious preinstall and postinstall lifecycle scripts that exfiltrate installation telemetry to a hardcoded IP endpoint. The package exhibits characteristics of a dependency-confusion reconnaissance probe.
- Disclosed
- Last updated
- Blast radius
- Any npm user who installed sm-apikey-model versions 99.0.0 or 99.0.1
- Ecosystems
- Attack vectors
- Affected entities
- sm-apikey-model · 99.0.0, 99.0.1
The npm package sm-apikey-model (versions 99.0.0 and 99.0.1) was identified as malicious by both Amazon Inspector and the OpenSSF Package Analysis project. The package contains preinstall and postinstall lifecycle scripts that invoke curl over plain HTTP to a hardcoded bare-IP endpoint (http://16.192.173.5/sm-apikey-model/pre and /post).
The malicious scripts are designed to exfiltrate installation telemetry. The endpoint receives a callback confirming each host that installed the package, along with the installer's source IP address. This allows the attacker to track deployment of the package across different environments.
The high version number (99.0.0 and 99.0.1) and the reconnaissance-focused behavior are consistent with a namespace-squatting or dependency-confusion probe rather than a functional library. The package appears designed to test whether a given namespace can be claimed on npm and to gather intelligence on who might be searching for or installing packages with this name.
Indicators of compromise
- Packages
- sm-apikey-model@99.0.0
- sm-apikey-model@99.0.1
- IPs
- 16.192.173.5
Remediation
- Remove sm-apikey-model versions 99.0.0 and 99.0.1 from all environments immediately
- Audit npm package.json files and lock files for any dependency on sm-apikey-model
- Review installation logs and network traffic from affected hosts for connections to 16.192.173.5
- If the package was installed, assume the host's IP address and installation context were exfiltrated to the attacker
- Implement npm package allow-listing or deny-listing policies to prevent installation of suspicious packages
- Monitor for similar high-version-number packages in your dependency tree that may indicate other reconnaissance attempts
Sources
- GitHub Advisory GHSA-26rf-c87j-mwr4 · GitHub Advisory Database
Cite this entry
"Malicious code in sm-apikey-model (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 24, 2026; last updated August 24, 2026. https://supplychainattack.org/incident/malicious-code-in-sm-apikey-model-npm-1qrxq9
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 amundi-compare (npm)
Malicious npm package amundi-compare@999.9.12 published at an inflated version number as a dependency-confusion attack. The package executes a preinstall hook that exfiltrates system and project metadata via HTTP, HTTPS, and DNS covert channels to da51rv0hb2uc72tg4gvgdepinjcallbk1.oast.fun.
npmCompromised packageDependency confusion - resolvedcritical
Malicious code in fund-calculator (npm)
Malicious npm package fund-calculator (version 999.9.12) contained a preinstall script that collected system and project metadata from installers and exfiltrated it via HTTP, HTTPS, and DNS to a hardcoded callback domain. The package was designed as a dependency-confusion attack to shadow an internal private package.
npmCompromised packageDependency confusion - activecritical
Malicious code in sm-billing-form (npm)
Malicious npm package sm-billing-form (versions 99.0.0 and 99.0.1) contains preinstall and postinstall lifecycle scripts that execute curl commands to a hardcoded IP address (16.192.173.5) over cleartext HTTP, exfiltrating install environment details. The high version number and behavior pattern indicate a dependency-confusion attack targeting internal packages of the same name.
npmCompromised packageDependency confusion - containedcritical
Malicious code in sm-cart (npm)
Malicious npm package sm-cart (versions 99.0.0 and 99.0.1) uses dependency confusion and preinstall/postinstall scripts to beacon to a hardcoded IP address (16.192.173.5) over plain HTTP, disclosing the installing host's public IP and successful installation. The package is designed to win resolution when an organization has an internal package with the same name.
npmDependency confusionCompromised package