Axios Npm Supply-Chain Compromise Via Malicious Dependency
Sources: 1 • Confidence: High • Updated: 2026-04-01 03:38
Key takeaways
- Axios versions 1.14.1 and 0.30.4 introduced a new dependency named plain-crypto-js.
- The malware packages were published to npm without an accompanying GitHub release.
- Using npm trusted publishing would restrict npm publishing so that only the Axios GitHub Actions workflows can publish releases.
- The npm package plain-crypto-js was newly published malware that stole credentials and installed a remote access trojan (RAT).
- The npm package Axios (an HTTP client) was targeted in a supply chain attack.
Sections
Axios Npm Supply-Chain Compromise Via Malicious Dependency
- Axios versions 1.14.1 and 0.30.4 introduced a new dependency named plain-crypto-js.
- The npm package plain-crypto-js was newly published malware that stole credentials and installed a remote access trojan (RAT).
- The npm package Axios (an HTTP client) was targeted in a supply chain attack.
Release-Process Anomaly As A Detection Signal (Npm Publish Without Github Release)
- The malware packages were published to npm without an accompanying GitHub release.
- A similar pattern of npm publication without an accompanying GitHub release was observed in the LiteLLM incident the prior week.
Publishing-Credential Compromise Risk And Control (Trusted Publishing)
- Using npm trusted publishing would restrict npm publishing so that only the Axios GitHub Actions workflows can publish releases.
- Unauthorized publication of the malicious Axios versions may have been enabled by a leaked long-lived npm token.
Unknowns
- Were Axios versions 1.14.1 and 0.30.4 widely installed in production environments before detection/remediation, and what was the actual blast radius?
- What definitive evidence (e.g., npm audit logs, publisher identity, IP history) confirms or refutes the leaked long-lived token hypothesis?
- What specific indicators of compromise (IOCs) and command-and-control behaviors were associated with plain-crypto-js, and how should defenders detect them?
- What exact timeline (publish time, discovery time, removal/revocation time) applies to the malicious Axios versions and the plain-crypto-js package?
- How reliable is the 'npm publish without GitHub release' heuristic across many packages (false positives/false negatives), beyond Axios and LiteLLM?