Industry
Technology and SaaS
Hijacked build tools, poisoned packages, stolen developer logins and leaked keys at software companies, and the rules that apply.
Quick links
Press Enter to search, Esc to close
Significant cyber incident
On 31 March 2026, two malicious versions of the Axios JavaScript library (1.14.1 and 0.30.4) were published to the npm registry through the lead maintainer's compromised account.
In short
On 31 March 2026, two malicious versions of the Axios JavaScript library (1.14.1 and 0.30.4) were published to the npm registry through the lead maintainer's compromised account. Each added a hidden dependency, plain-crypto-js, that installed a remote access trojan on macOS, Windows and Linux. The versions were live for about three hours before npm removed them. CISA and Singapore's CSA told affected users to rotate credentials.
On 31 March 2026, two malicious versions of Axios, 1.14.1 and 0.30.4, were published to the npm registry. The Axios maintainer says they were published through his compromised account. Singapore’s CSA calls Axios a widely used JavaScript HTTP client.
Both versions added a dependency called plain-crypto-js 4.2.1. It installed a remote access trojan on macOS, Windows and Linux. The versions were live for about three hours before npm removed them.
The maintainer says the attacker got into his computer through a targeted social engineering campaign and malware, and then used his npm credentials to publish.
A social engineering campaign starts against the lead Axios maintainer, according to his post mortem.
Axios 1.14.0, the last clean 1.x release before the attack, is published to npm.
plain-crypto-js 4.2.0 is published to npm.
plain-crypto-js 4.2.1 is published, according to the npm registry record.
axios 1.14.1 is published with plain-crypto-js 4.2.1 injected.
axios 0.30.4 is published with the same payload. The npm registry records 01:00 UTC.
Community members file issues. The attacker deletes them with the compromised account.
An Axios collaborator opens a pull request to deprecate the versions and contacts npm.
The malicious Axios versions are removed from npm.
plain-crypto-js is removed from npm, according to the maintainer.
npm publishes a security holding package under the plain-crypto-js name, according to the npm registry record.
GitHub publishes a malware advisory for axios 1.14.1 and 0.30.4.
Singapore's Cyber Security Agency publishes an advisory.
CISA publishes its alert with guidance for organizations.
The maintainer says the attacker posed as the founder of a company, using a cloned identity. He was invited to a Slack workspace branded for that company and then to a meeting on MS Teams that showed what looked like a group of people.
In the meeting he was told something on his system was out of date. He installed the missing item, thinking it was part of Teams. He says that item was the remote access trojan.
The maintainer says the attacker used his npm credentials to publish. He says he had 2FA on the account. The npm registry shows that 1.14.1 and 0.30.4 were published on 31 March, hours after an earlier version of plain-crypto-js appeared on 30 March. Singapore’s CSA describes a CI/CD pipeline bypass in the attack.
The Axios releases carried one new dependency, plain-crypto-js 4.2.1. CISA says it downloads multi-stage payloads from attacker infrastructure, including a remote access trojan. CSA says the payload runs from a post-install script. That is why CISA advises setting ignore-scripts=true.
CSA lists a command and control domain, sfrclak[.]com, and file traces on each system: a macOS cache file, wt.exe and a script on Windows, and /tmp/ld.py on Linux.
No public attribution. None of the government and official pages opened (CISA, Singapore CSA, GitHub, npm, the Axios maintainer's post mortem) names an actor.
No source opened gives a count of affected organizations, installs or confirmed victims. GitHub says any computer with axios 1.14.1 or 0.30.4 installed should be treated as fully compromised. CISA and Singapore CSA tell affected users to rotate credentials. CSA says Axios users worldwide were affected. The maintainer says the versions were live for about three hours. He gives the window as 00:21 to 03:15 UTC on 31 March. The maintainer's own devices were wiped and all his credentials were reset.
The attack worked by publishing from a single maintainer account. Users who trusted the package name got the malware.
The payload ran at install time, so CISA advises turning install scripts off with ignore-scripts=true.
The maintainer says this could have been avoided, and he is moving to OIDC publishing and immutable releases.
The maintainer says detection depended on the community noticing. Community members filed issues first.
The maintainer says he had 2FA on and the attacker still published, after his machine was infected. CISA asks for phishing-resistant MFA.
CISA recommends min-release-age=7 so brand new package versions are not installed straight away.
Look in package-lock.json, yarn.lock, pnpm-lock.yaml and bun.lock for axios 1.14.1, axios 0.30.4 or plain-crypto-js.
Review pipelines and developer machines that ran npm install or npm update on 31 March 2026, and caches in your artifact repositories.
Search for connections to sfrclak[.]com and 142[.]11[.]206[.]73, and for the file traces CSA lists on macOS, Windows and Linux.
For any affected machine or CI run, rotate VCS tokens, CI/CD secrets, cloud keys, npm tokens and SSH keys.
Set ignore-scripts=true in .npmrc and test what breaks. Add min-release-age=7.
Require phishing-resistant MFA on developer and maintainer accounts. Brief staff on fake meeting invites that ask them to install an update.
Watch for unexpected child processes and network calls during npm install, and for dependencies that suddenly run commands.
On 31 March 2026, two malicious versions, 1.14.1 and 0.30.4, were published to npm through the lead maintainer's compromised account. They added a dependency that installed a remote access trojan.
About three hours. The maintainer says they were removed at 03:15 UTC after being published from 00:21 UTC.
Only if you installed axios 1.14.1 or 0.30.4. The maintainer says the bad versions were live from 00:21 to 03:15 UTC on 31 March.
CISA says to downgrade to axios 1.14.0 or 0.30.3, delete node_modules/plain-crypto-js, and rotate exposed credentials. GitHub says to treat the machine as fully compromised.
No public attribution appears in the government and official pages opened for this entry.
The maintainer says a fake company approached him, and a meeting prompted him to install a missing item, which was the remote access trojan.
Take control of your digital security with an exclusive demo of our AI-driven threat intelligence platform.