
On March 31, 2026, the popular JavaScript HTTP client library Axios (over 300 million weekly downloads) was compromised in a sophisticated supply chain attack. The attacker hijacked an official maintainer account and published malicious versions containing a hidden dependency that deployed cross-platform Remote Access Trojans (RATs).
Date of Incident: March 31, 2026
Severity: CRITICAL
Status: Malicious packages removed from npm registry (03:29 UTC same day)
๐ EXECUTIVE SUMMARY
On March 31, 2026, the popular JavaScript HTTP client library Axios (over 300 million weekly downloads) was compromised in a sophisticated supply chain attack. The attacker hijacked an official maintainer account and published malicious versions containing a hidden dependency that deployed cross-platform Remote Access Trojans (RATs).
Attack Window: 3 hours (00:21 UTC - 03:29 UTC)
Snyk Advisory ID:
SNYK-JS-AXIOS-15850650Malicious Dependency:
plain-crypto-js@4.2.1Command & Control:
sfrclak[.]com:8000(IP:142.11.206.73)
๐จ THREAT ANALYSIS
Affected Packages
Package | Vulnerable Versions | Impact |
|---|---|---|
axios@1.14.1 | YES - Compromised | CRITICAL |
axios@0.30.4 | YES - Compromised | CRITICAL |
Axios (other versions) | SAFE | None |
Attack Vector Details
The attacker did NOT modify Axios source code directly. Instead, they injected a malicious dependency plain-crypto-js@4.2.1 into package.json files. When developers ran:
Npm automatically resolved and installed plain-crypto-js@4.2.1, then executed its postinstall hook:
Sophistication Level: HIGH
Pre-staging: Clean version (4.2.0) published 18 hours prior to establish legitimate history
Double Obfuscation: Base64 encoding + XOR cipher
Self-erasing: Deleted all traces after execution
Platform-specific: Custom malware for macOS, Windows, and Linux
Platform-Specific Payloads
๐ macOS
Location:
/Library/Caches/com.apple.act.mond(spoofing Apple daemon)Beacon Frequency: Every 60 seconds
Capabilities: System fingerprinting, process enumeration, arbitrary command execution
๐ป Windows
Location:
%PROGRAMDATA%\wt.exe(masquerading as Windows Terminal)Execution: Hidden PowerShell RAT with policy bypass flags
Delivery: VBScript downloader
๐ง Linux
Location:
/tmp/ld.pyExecution:
nohup python3as orphaned background processDetection Evasion: Detached from terminal session
๐ DETECTION TECHNIQUES & INDICATORS OF COMPROMISE (IOCs)
File System IOCs
Platform | IOC Path | Detection Method |
|---|---|---|
macOS |
| File integrity monitoring, process audit |
Windows |
| Process name check (abnormal executable) |
Linux |
| Temp directory monitoring, Python process audit |
Network IOCs
Domain:
sfrclak[.]com:8000IP Address:
142.11.206.73Port: 8000
Detection Methods:
Firewall rules blocking outbound connections
IDS/IPS alerts for known malicious IPs
Network flow analysis
Build Environment IOCs
Runtime IOCs (Post-Infection)
Unexpected processes matching IOC paths
Outbound connections to
142.11.206.73orsfrclak[.]comModified system directories (
/Library/Caches,%PROGRAMDATA%,/tmp)Fake user-agent strings (IE8/Windows XP) in network traffic
๐ก๏ธ MITIGATION PLAN
IMMEDIATE ACTIONS (Within First 4 Hours)
๐ Containment
๐ Credential Rotation (CRITICAL!)
๐ Network Traffic Analysis
๐ System Rebuild (RECOMMENDED)
โ ๏ธ DO NOT ATTEMPT TO CLEAN COMPROMISED SYSTEMS
The RAT is sophisticated with anti-forensics capabilities. Full rebuild from clean image required.
PREVENTIVE MEASURES
Package Manager Best Practices
Security Tooling Recommendations
Snyk Integration
Continuous Monitoring Setup
Enable CI/CD pipeline dependency scanning
Implement runtime process monitoring in build environments
Configure network egress filtering (block known bad IPs)
Set up file integrity monitoring for
node_modules
Organizational Response Plan
Severity Level | Condition | Action Required |
|---|---|---|
CRITICAL | System ran npm install 00:21-03:29 UTC | Full system rebuild, credential rotation |
HIGH | Project depends on secondary compromised packages (@qqbrowser/openclaw-qbot or @shadanai/openclaw) | Audit all systems, rebuild environments |
MEDIUM | Using unsafe Axios versions but not during attack window | Update to safe version immediately |
LOW | Lockfile committed before attack, no updates in window | Monitor, review lockfile strategy |
Incident Response Checklist
Identify all CI/CD pipelines that may have installed affected packages
Review build logs for March 31, 2026 UTC 00:21-03:29 window
Check all developer machines for lockfile updates during attack window
Rotate credentials on any system with potential exposure
Add plain-crypto-js to security tooling blocklists
Implement post-install script auditing in CI/CD
Enable dependency pinning organization-wide
๐ AFFECTED SYSTEMS ASSESSMENT
High-Risk Groups:
CI/CD Pipelines without version pinning and running scheduled installs
Developers who ran
npm installornpm updatein attack windowProjects depending on secondary compromised packages (
@qqbrowser/openclaw-qbot,@shadanai/openclaw)
Mitigation Effectiveness by Control:
Control | Effectiveness | Implementation Effort |
|---|---|---|
Lockfile pinning | HIGH | LOW |
npm ci (not install) | HIGH | LOW |
Snyk scanning | HIGH | MEDIUM |
--ignore-scripts | HIGH | LOW |
Runtime monitoring | MEDIUM | HIGH |
๐ LESSONS LEARNED & BEST PRACTICES
Supply Chain Security Principles:
Never trust lockfiles alone - Use version pinning + lockfile commits
Audit post-install scripts - Especially in CI/CD environments
Monitor build environment runtime - Unexpected process spawns are red flags
Rotate credentials after any supply chain incident - Assume compromise
Use SLSA levels or equivalent controls - Implement supply chain integrity verification
Recommended Security Stack:
Snyk for dependency scanning and vulnerability management
Socket for real-time malicious package detection
npm-security-best-practices repository for CI/CD hardening
Regular lockfile security reviews as part of PR process
๐ OFFICIAL RESOURCES
Snyk Advisories:
Axios Compromise: https://security.snyk.io/vuln/SNYK-JS-AXIOS-15850650
Malicious Dependency: https://security.snyk.io/vuln/SNYK-JS-PLAINCRYPTOJS-15850652
Additional Resources:
GitHub Issue Thread: https://github.com/axios/axios/issues/10604
NPM Security Best Practices: https://github.com/lirantal/npm-security-best-practices
Snyk Learn (Supply Chain Attacks): https://learn.snyk.io/lesson/compromise-of-legitimate-package/
โ ๏ธ IMPORTANT NOTES
The malicious versions have been removed from npm registry (March 31, 2026 at 03:29 UTC)
Anyone who installed during the 3-hour window should assume full system compromise: the RAT was live, beaconing, and capable of executing arbitrary follow-on payloads
This attack demonstrates sophisticated supply chain threat actor capabilities:
Pre-staging malicious dependencies with "clean" history
Double-obfuscation techniques to evade static analysis
Platform-specific custom malware development
Self-erasing anti-forensics
๐ ATTACK TIMELINE
Time (UTC) | Event |
|---|---|
2026-03-30 23:59 | plain-crypto-js@4.2.1 published to npm (pre-staging - clean version) |
2026-03-31 00:21 | axios@1.14.1 published with malicious dependency |
2026-03-31 ~00:27 | Socket's scanner detected malicious version (~6 minutes after publish) |
2026-03-31 01:00 | axios@0.30.4 published with malicious dependency |
2026-03-31 03:29 | Both malicious versions removed from npm registry |
โ RECOMMENDED ACTIONS SUMMARY
Immediate (Next 1-4 Hours):
Audit all lockfiles for affected axios versions (
1.14.1or0.30.4)Identify any systems that ran
npm installduring attack windowIsolate and rebuild compromised systems
Rotate all credentials on affected systems
Short-term (Next 24 Hours):
Update all projects to safe axios versions (
^1.6.0or other safe version)Add plain-crypto-js to security tooling blocklists
Enable lockfile pinning organization-wide
Implement CI/CD scanning for post-install scripts
Long-term (Next Week):
Adopt dependency scanning tooling (e.g., Snyk, Socket)
Implement runtime monitoring in build environments
Review and strengthen maintainer account security policies
Establish supply chain incident response procedures
Consider using
--ignore-scriptsin CI/CD environments where lifecycle hooks aren't needed
Report Generated: March 31, 2026
Severity: CRITICAL
Status: Incident Resolved (malicious packages removed from registry)
Threat Actor Sophistication: HIGH
Estimated Blast Radius: Thousands to Millions of systems potentially affected
Understand how ATLAS Cyber offers word class detection and response with 0 false positives.