Software Supply Chain Security Advisory

When Trust
Becomes a Weapon

A precision attack against the npm ecosystem exposed millions of developers worldwide — and your organization may still be at risk. Here is what happened, why it matters, and what to do now.

CLASSIFICATION PUBLIC ADVISORYSEVERITY CRITICALVECTOR NPM SUPPLY CHAIN
100M+
Weekly Downloads
3 hrs
Exposure Window
3 OS
Platforms Targeted
Executive SummaryIMMEDIATE RISK LEVEL: CRITICAL
What Happened

Attackers hijacked a trusted maintainer account for Axios — one of the world's most downloaded JavaScript libraries — and published poisoned versions that secretly installed surveillance software on developer machines.

Why It Matters

This was not a software bug. It was a deliberate, pre-planned attack on the supply chain your engineers rely on daily. Stolen credentials, remote access, and persistent malware are the consequences for affected organizations.

Immediate Risk Level

Any team that installed Axios on March 31, 2026 between 00:21–03:20 UTC without a pinned version should treat their environment as potentially compromised and rotate all secrets immediately.

Vulnerable Package VersionsPublished March 31, 2026 · Now Removed from npm
Packageaxios@1.14.1Compromised
Packageaxios@0.30.4Compromised
Malicious Dep.plain-crypto-js@4.2.1Malicious
Attack Window00:21–03:20 UTC Mar 313 hrs exposure
Verified Safe Versions:axios@1.8.4axios@0.29.0— Recommend to Downgrade to these versions

Most modern software applications are built like LEGO sets — developers assemble thousands of small, reusable building blocks rather than writing everything from scratch. One of those blocks, Axios, is a JavaScript tool that helps applications communicate over the internet. It is so widely used that it appears — directly or indirectly — in a significant fraction of every web and mobile application built today.

On March 31, 2026 (UTC), attackers gained control of the account belonging to Axios's primary maintainer and used it to publish two new versions of the library. The Axios code itself was untouched. Instead, the attackers embedded a hidden reference to a second malicious package that would automatically download and execute when any developer ran a routine install command.

Why the attack was so hard to detect

Because Axios itself contained zero malicious lines of code, standard code reviews and security audits of the package would find nothing suspicious. The threat was hidden one layer deeper — in a dependency that was only flagged as malicious after it had already been downloaded millions of times. Furthermore, the malware erased its own traces after execution, so post-infection inspection of the file system appeared clean.

This attack was not opportunistic. Researchers confirmed that the malicious infrastructure was staged 18 hours in advance — a sign of careful operational planning designed specifically to evade early detection systems.

~18 Hours Before Attack
Pre-staging: Attackers quietly published an earlier "clean" version of the malicious package to establish a brief history on the registry and avoid "brand-new package" security alerts.
00:21 UTC — March 31
First strike: Compromised Axios version 1.14.1 published to npm using the hijacked maintainer account. No matching GitHub commit appeared — a flag that automated systems should have caught.
01:00 UTC
Second strike: Version 0.30.4 published — targeting both the current and legacy release branches simultaneously to maximize exposure across the ecosystem.
Within 2 Seconds of Install
Payload delivered: Malware contacted the attacker's remote server before npm even finished resolving dependencies. Platform-specific remote access trojans were delivered for Windows, macOS, and Linux.
~03:20 UTC
Detection and removal: Malicious versions identified and pulled from npm. Total exposure window: approximately 3 hours.

Self-Destructing Evidence

After executing, the malware replaced its own configuration with a clean decoy file and deleted all installation artifacts. A developer who inspects their project folder after the fact will find no indication anything went wrong. Running npm audit will return clean results. The only reliable detection method is inspecting lockfile history.

For executive leadership, the critical framing is this: a single compromised open-source maintainer account was enough to turn one of the most trusted tools in the software ecosystem into an attack vector reaching millions of organizations.

Business Risk

Credential & Data Exfiltration

Cloud access keys, database passwords, API tokens, and SSH keys on any affected machine should be assumed stolen. Attackers were observed validating stolen credentials within hours.

Technical Risk

Persistent Backdoor Access

The installed Remote Access Trojan (RAT) gives attackers ongoing, silent control — not just a one-time data grab. They can return, move laterally across your network, and escalate privileges.

Pipeline Risk

CI/CD Infrastructure Poisoning

Automated build pipelines that run without pinned dependencies are high-value targets. A compromised build environment can propagate infections downstream to your products and customers.

Operational Risk

Extended Blast Radius

Packages that themselves depend on Axios extended exposure far beyond direct users. Mandiant's CTO noted the attack "extends to other popular packages that have dependencies on it."

For engineering and security teams, this incident illustrates a class of supply chain attack where the infection vector is the install step itself, not the application runtime. The mechanism relied on npm's postinstall hook — a feature that allows packages to run arbitrary scripts the moment they are downloaded.

The malicious dependency used two layers of obfuscation to evade static analysis tools. It then checked the host operating system and downloaded a tailored payload: a VBScript/PowerShell combination on Windows, and a binary dropper on macOS and Linux. After execution, it replaced its own package.json with a clean decoy and removed all traces.

Which environments were protected

Organizations that committed lockfiles (package-lock.json or yarn.lock) before the malicious versions were published, and whose install process did not update the lockfile, were not affected. Pipelines that disable postinstall scripts were also protected. This validates two widely recommended but often skipped security controls.

Attribution: North Korea-Nexus Threat Actor UNC1069

Google Threat Intelligence Group (GTIG) has attributed this attack to UNC1069, a financially motivated North Korea-nexus threat actor active since at least 2018. The malicious dropper deploys a backdoor tracked as WAVESHAPER.V2 — an updated version of malware previously used by this group. UNC1069 has historically used supply chain attacks to steal cryptocurrency and cloud credentials. John Hultquist, Chief Analyst at GTIG, stated that given the popularity of the compromised package, the incident is expected to have "far reaching impacts."

Risk AreaSeverityDescription
Credential TheftCRITICALCloud keys, API tokens, SSH keys, and database passwords on any affected machine should be assumed stolen and rotated immediately.
Remote Access (RAT)CRITICALAttackers gain persistent, silent control over infected systems. This is not just a data leak — it is a live, ongoing intrusion.
Invisible FootprintHIGHThe malware self-destructs after execution. Standard auditing tools return clean results, making detection extremely difficult after the fact.
Pipeline CompromiseHIGHCI/CD systems without pinned versions or postinstall controls are directly exposed — and a compromised build pipeline can infect downstream products.
Transitive ExposureHIGHOrganizations that do not use Axios directly may still be affected through packages that depend on it as a transitive dependency.
Cross-Platform ReachMEDIUMSeparate payloads were crafted for Windows, macOS, and Linux. No operating system provides inherent protection against this attack class.
Immediate ActionsDO NOW
Short-Term HardeningWITHIN 30 DAYS
Long-Term ResilienceONGOING
Threat Indicators — Treat these as malicious
Affected Axios Version 1
axios@1.14.1
Affected Axios Version 2
axios@0.30.4
Malicious Dependency
plain-crypto-js@4.2.1
C2 Domain
sfrclak[.]com
C2 IP Address
142.11.206.73:8000
Compromised Account Email
jasonsatelloworks@gmail.com
Threat Actor
UNC1069 (North Korea-nexus)
Backdoor Name
WAVESHAPER.V2
RAT Artifact — macOS
/Library/Caches/com.apple.act.mond
RAT Artifact — Windows
%PROGRAMDATA%\wt.exe
RAT Artifact — Linux
/tmp/ld.py
Safe Version — Current
axios@1.8.4
Safe Version — Legacy
axios@0.29.0