axios npm compromise checker: did you install a malicious version?
Disclosed . This page was last updated .
Checked against OSV.dev, CISA KEV, FIRST EPSS, npm, PyPI, deps.dev, endoflife.date and Docker Hub, live.
What happened
An attacker took over the npm account of axios’s lead maintainer and published axios 1.14.1 at 00:21 UTC and 0.30.4 at about 01:00 UTC on 31 March 2026. Both were removed at 03:15 UTC, roughly three hours later, according to the maintainers’ post-mortem. The maintainer was targeted with a social-engineering campaign that installed a remote access trojan on their machine.
Both releases added plain-crypto-js@4.2.1 as a dependency. Its install script contacts the attacker’s server and drops a platform-specific remote access trojan on Windows, macOS and Linux (Microsoft Threat Intelligence, which attributes it to Sapphire Sleet, a North Korean state actor).
GitHub published the malware advisories GHSA-fw8c-xr5c-95f9 (axios) and GHSA-2x9r-6wxq-hrr7 (plain-crypto-js); OSV.dev carries them as MAL-2026-2307 and MAL-2026-2306.
Affected versions
axios
- Affected
- 1.14.1 and 0.30.4 (removed from npm)
- Fixed or safe
- Any other release; the maintainers pointed to 1.14.0 and 0.30.3 at the time
plain-crypto-js
- Affected
- Every version (a malicious package)
- Fixed or safe
- Remove it
Who is affected
Affected: any machine or CI runner that ran npm install (or yarn, pnpm or bun) and resolved axios to 1.14.1 or 0.30.4 between 00:21 and 03:15 UTC on 31 March 2026, directly or through another package. GitHub’s advisory says to treat such a machine as fully compromised.
Not affected: installs that kept a lockfile pinning another axios version, installs before or after that window, and projects that don’t use axios at all. A range such as ^1.14.0 could only have pulled 1.14.1 during the window, because npm no longer serves it.
What to do
- Search every lockfile (package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lock) for plain-crypto-js: only the two malicious axios releases pulled it in. The maintainers’ post-mortem gives a grep for it. Check CI logs from 31 March too.
- If you find either: rotate every secret and key that machine or runner could reach, from a different computer. Removing the package doesn’t guarantee the trojan is gone, so rebuild the machine or runner.
- Look for outbound traffic to sfrclak[.]com or 142.11.206.73 on port 8000, the indicators Microsoft and OSV list.
- Move axios to the current release (the check above shows which), and keep exact versions in a committed lockfile so a new release can’t reach you unreviewed.
Sources
Hear about the next one first
Connect GitHub and StackPrism re-checks your repos every day, with an alert when a new critical finding such as a known-exploited advisory turns up. Free to start.