
























Published on:
Mar 30, 2026
axios@1.14.1 and axios@0.30.4. npm has since removed both.plain-crypto-js) that deploys a cross-platform remote access trojan targeting macOS, Windows, and Linux.node_modules will not reveal it. You need to check your logfiles.Credit to the great coverage of this incident by:
Scans your installed packages and lock file for 1.14.1 or 0.30.4.
npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4"
grep -A1 '"axios"' package-lock.json | grep -E "1\.14\.1|0\.30\.4"Even if setup.js self-deleted, the directory still exists. Its presence alone confirms the dropper ran.
ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIALLY AFFECTED"macOS
ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo "COMPROMISED"Windows
dir "%PROGRAMDATA%\wt.exe" 2>nul && echo COMPROMISEDLinux
ls -la /tmp/ld.py 2>/dev/null && echo "COMPROMISED"Connect your repositories to Aikido (https://app.aikido.dev). Aikido's Malware Monitor compares your dependencies against Aikido Intel's live malware feed. If axios@1.14.1, axios@0.30.4, or plain-crypto-js@4.2.1 is present in any of your projects, Aikido flags it immediately. This works on the free tier.
Check if your code is affected by the Axios supply chain attack - scan it free with Aikido
npm install axios@1.14.0 # 1.x users
npm install axios@0.30.3 # 0.x users{
"dependencies": { "axios": "1.14.0" },
"overrides": { "axios": "1.14.0" },
"resolutions": { "axios": "1.14.0" }
}plain-crypto-js from node_modules:rm -rf node_modules/plain-crypto-js
npm install --ignore-scriptscom.apple.act.mond, wt.exe, ld.py), do not attempt to clean in place. Rebuild from a known-good state..env values.npm ci --ignore-scripts as a standing policy in CI/CD.The attacker compromised the jasonsaayman npm account, the primary maintainer of axios. The account email was changed to ifstap@proton.me. The attacker then published axios@1.14.1 at 00:21 UTC on March 31 and axios@0.30.4 at 01:00 UTC. Both the 1.x and legacy 0.x branches were hit within 39 minutes.
Neither version had a corresponding commit, tag, or release in the axios GitHub repository. Legitimate axios releases are published via GitHub Actions with OIDC Trusted Publisher binding. These were published manually with a stolen npm access token.
The only change in both versions was the addition of plain-crypto-js@^4.2.1 as a dependency. This package is never imported anywhere in the axios source. It exists solely to run a postinstall hook that deploys a RAT.
The dependency was pre-staged ~18 hours earlier by a separate attacker account (nrwise, nrwise@proton.me). A clean decoy version (4.2.0) was published first to build registry history, followed by the malicious 4.2.1 at 23:59 UTC on March 30.
The RAT dropper (setup.js) contacts sfrclak[.]com:8000 and delivers platform-specific payloads: a macOS binary disguised as an Apple cache daemon at /Library/Caches/com.apple.act.mond, a PowerShell script on Windows run via hidden VBScript with the interpreter copied to %PROGRAMDATA%\wt.exe, and a Python script on Linux at /tmp/ld.py. After execution, the dropper deletes itself and replaces its own package.json with a clean stub to hide evidence.
{{cta}}
Malicious axios versions and dependencies:
axios@1.14.1 (shasum: 2553649f2322049666871cea80a5d0d6adc700ca)axios@0.30.4 (shasum: d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71)plain-crypto-js@4.2.1 (shasum: 07d889e2dadce6f3910dcbc253317d28ca61c766)Network:
sfrclak[.]com / 142.11.206[.]73 / http://sfrclak[.]com:8000/6202033File system:
/Library/Caches/com.apple.act.mond92ff08773995ebc8d55ec4b8e1a225d0d1e51efa4ef88b8849d0071230c9645a%PROGRAMDATA%\wt.exe, %TEMP%\6202033.vbs, %TEMP%\6202033.ps1617b67a8e1210e4fc87c92d1d1da45a2f311c08d26e89b12307cf583c900d101 (powershell)/tmp/ld.pyfcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cfAttacker accounts:
Aikido Safe Chain (https://github.com/AikidoSec/safe-chain) is an open-source tool that wraps around npm, yarn, and pnpm. It checks every package against Aikido Intel's malware feed before it reaches your machine and enforces a configurable minimum package age (48 hours by default), suppressing newly published versions until they have been validated. In this axios attack, plain-crypto-js@4.2.1 existed for less than 24 hours before the compromised axios versions pulled it in. Safe Chain's age check alone would have blocked it.
Free, no tokens required:
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/latest/download/install-safe-chain.sh | shDeveloping story... Stay tuned for updates.
{{cta}}
Last updated on:
Mar 31, 2026
Tired of false positives?
Try Aikido like 100k others.
Start Now
Get a personalized walkthrough
Trusted by 100k+ teams
Book Now
Scan your app for IDORs and real attack paths
Trusted by 100k+ teams
Start Scanning
See how AI pentests your app
Trusted by 100k+ teams
Start Testing
Check if you're affected in the axios supply chain attack
Free, no credit card required
Scan for malware
•
Vulnerabilities & Threats
The compromised onering Rust crate v1.4.1 on crates.io shipped a malicious build.rs that exfiltrates the diff of your latest commit to a hosted Sentry endpoint every time you build.
•
Vulnerabilities & Threats
Aikido Security discovered a critical unauthenticated authentication bypass in phpBB affecting tens of millions of users. A single HTTP request is all it takes to take over any account — a vulnerability that's been sitting in the codebase since 2014.
•
Vulnerabilities & Threats
Deep dive into binding.gyp, the often overlooked npm build file that can execute malicious code at install time through shell expansions, sandbox escapes, and compiler hijacking.
Secure your code, cloud, and runtime in one central system.
Find and fix vulnerabilities fast automatically.
No credit card required | Scan results in 32secs.


此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。