<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/malicious-axios-versions-1-14-1-and-0-30-4-deploy-a-remote-access-trojan-via-supply-chain-attack-rlevdfzaa" -->

---
title: Malicious axios versions 1.14.1 and 0.30.4 deploy a...
description: Two malicious versions of axios (1.14.1 and 0.30.4) were published to npm on March 31, 2026, after an attacker hijacked a lead maintainer&#x27;s npm credentials....
canonical: https://daily.dev/posts/malicious-axios-versions-1-14-1-and-0-30-4-deploy-a-remote-access-trojan-via-supply-chain-attack-rlevdfzaa
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Malicious axios versions 1.14.1 and 0.30.4 deploy a remote access trojan via supply chain attack | daily.dev
og:description: Two malicious versions of axios (1.14.1 and 0.30.4) were published to npm on March 31, 2026, after an attacker hijacked a lead maintainer&#x27;s npm credentials....
og:url: https://daily.dev/posts/malicious-axios-versions-1-14-1-and-0-30-4-deploy-a-remote-access-trojan-via-supply-chain-attack-rlevdfzaa
og:image: https://api.daily.dev/og/posts/RlEVDfzaA.png
og:image:alt: Malicious axios versions 1.14.1 and 0.30.4 deploy a remote access trojan via supply chain attack
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Malicious axios versions 1.14.1 and 0.30.4 deploy a remote access trojan via supply chain attack

**[Collections](https://daily.dev/sources/collections)** · 3 min read · 426 upvotes · 25 comments

## Summary

Two malicious versions of axios (1.14.1 and 0.30.4) were published to npm on March 31, 2026, after an attacker hijacked a lead maintainer's npm credentials. The packages themselves were clean but pulled in a staged dependency, plain-crypto-js, which ran a postinstall script downloading platform-specific second-stage payloads from a C2 server. The payloads self-deleted after execution to hinder forensics. Socket detected the attack within minutes, Vercel blocked the C2 domain, and the versions were unpublished. Developers should check lockfiles and node_modules for the affected versions, rotate all secrets from affected environments, pin to safe versions, and add --ignore-scripts to CI npm installs. The incident highlights the systemic risk of unpinned dependencies in ecosystems where a single compromised maintainer account can affect hundreds of millions of weekly installs.

## Content

## What happened

On March 31, 2026, two malicious versions of axios were published to npm: `1.14.1` and `0.30.4`. Axios gets downloaded somewhere between 100 and 300 million times a week, making it one of the most widely used packages in the JavaScript ecosystem. An attacker hijacked the npm credentials of a lead maintainer, changed the account email to an anonymous ProtonMail address, and manually published both versions outside the normal release workflow. Neither version appears in axios's GitHub tags, and neither went through CI/CD.

The attack was operationally deliberate. The fake dependency `plain-crypto-js@4.2.1` was staged roughly 18 hours before the malicious axios versions went live. Both release branches were hit within 39 minutes of each other.

## How the malware works

The axios packages themselves contain no malicious code. Instead, they pull in `plain-crypto-js` as a dependency. That package runs a postinstall script that downloads and executes platform-specific second-stage payloads from a C2 server at `sfrclak.com:8000`, targeting macOS, Windows, and Linux.

After execution, the payload self-deletes and overwrites its own `package.json` with a clean stub, making forensic detection harder. Any system that ran `npm install` after `2026-03-31T00:21:58Z` without a lockfile pinning a prior safe version may be compromised.

Socket's automated detection flagged the malicious package within minutes. Vercel blocked outbound access to the C2 hostname, and the malicious versions have since been unpublished from npm.

## What to do now

**Check if you're affected:**
- Search your lockfiles and `node_modules` for `axios@1.14.1`, `axios@0.30.4`, or any trace of `plain-crypto-js`
- Check network logs for connections to `sfrclak.com`

**Remediate:**
- Pin to `axios@1.14.0` or `axios@0.30.3`
- Rotate all secrets, API keys, SSH keys, and credentials present in any affected build environment
- Redeploy affected projects
- Add `--ignore-scripts` to CI npm installs going forward

## The broader problem

Andrej Karpathy noted that he had axios pulled in transitively through a Google Workspace CLI tool he'd been experimenting with. The installed version happened to resolve to an unaffected `1.13.5`, but the dependency wasn't pinned - if he'd run the install a few hours later, it would have resolved to `latest` and pulled the malicious version.

That's the uncomfortable reality here. One compromised maintainer account, a package that's installed hundreds of millions of times a week, and the attack surface is enormous. Pinning dependencies and using lockfiles helps individually, but the defaults of package managers like npm and pip don't protect users who aren't already thinking carefully about this. A single infection - usually caught fairly quickly by security scanners - can still spread widely before it's pulled.

## Community discussion

Top comments from developers on daily.dev.

**@alvarogfn** · 71 upvotes

> The compromised version has already been removed from npm. npm's response was very quick, with an exposure time of approximately 3 hours.
>
> Congratulations to the npm team. 🥳

**@fabianletsch** · 4 upvotes

> For europeans working 9to5 its pretty unlikely that their personal dev machines are affected because it was available only at midnight.

**@petecapecod** · 4 upvotes

> The attacks keep coming! Every time I read on of these I clinch up 😓 never know if you're going to get hit.
>
> Somebody definitely needs to do something about these.

**@shaswat\_shrivas** · 3 upvotes

> This is really scary because it shows how much we trust packages we use every day without even thinking about it. Most developers probably don't even think about Axios because it's so common. That's what made this attack so dangerous.
>
> What struck me the most was how well-planned this was. The attackers didn't even have to change Axios itself; they just added a dependency that most people wouldn't notice. It shows that even a small update to a package can have a big effect when it is used in a lot of projects.
>
> I also think this shows that depending on the newest versions without lockfiles or...

**@itsmnthn** · 3 upvotes

> I feel this gonna happen more and more

## Similar posts on daily.dev

- [Axios npm Package Compromised in Supply Chain Attack](https://daily.dev/posts/axios-npm-package-compromised-in-supply-chain-attack-yteqa7dzf) · InfoQ · 0 upvotes · 0 comments
- [axios compromised on npm: maintainer account hijacked, RAT deployed](https://daily.dev/posts/axios-compromised-on-npm-maintainer-account-hijacked-rat-deployed-6mr1vfvvx) · Aikido Security · 0 upvotes · 0 comments

---

Tags: [#security](https://daily.dev/tags/security), [#cyber](https://daily.dev/tags/cyber), [#malware](https://daily.dev/tags/malware), [#npm](https://daily.dev/tags/npm), [#axios](https://daily.dev/tags/axios)

[View this post on daily.dev](https://daily.dev/posts/malicious-axios-versions-1-14-1-and-0-30-4-deploy-a-remote-access-trojan-via-supply-chain-attack-rlevdfzaa)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Malicious axios versions 1.14.1 and 0.30.4 deploy a remote access trojan via supply chain attack","url":"https://daily.dev/posts/malicious-axios-versions-1-14-1-and-0-30-4-deploy-a-remote-access-trojan-via-supply-chain-attack-rlevdfzaa","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/malicious-axios-versions-1-14-1-and-0-30-4-deploy-a-remote-access-trojan-via-supply-chain-attack-rlevdfzaa"},"datePublished":"2026-03-31T03:58:49.553Z","dateModified":"2026-03-31T12:46:10.431Z","description":"Two malicious versions of axios (1.14.1 and 0.30.4) were published to npm on March 31, 2026, after an attacker hijacked a lead maintainer's npm credentials....","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/70ec667952d063603ec2e3c6950e40c4?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/70ec667952d063603ec2e3c6950e40c4?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collections","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collections","logo":"https://media.daily.dev/image/upload/s--fk_6ycEi--/f_auto,q_auto/v1780996001/logos/collections?_a=BAMAMiWQ0","url":"https://daily.dev/sources/collections"},"commentCount":25,"discussionUrl":"https://daily.dev/posts/malicious-axios-versions-1-14-1-and-0-30-4-deploy-a-remote-access-trojan-via-supply-chain-attack-rlevdfzaa","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":426},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":25}],"keywords":"security,cyber,malware,npm,axios","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collections","item":"https://daily.dev/sources/collections"},{"@type":"ListItem","position":3,"name":"Malicious axios versions 1.14.1 and 0.30.4 deploy a remote access trojan via supply chain attack"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/malicious-axios-versions-1-14-1-and-0-30-4-deploy-a-remote-access-trojan-via-supply-chain-attack-rlevdfzaa","comment":[{"@type":"Comment","text":"The compromised version has already been removed from npm. npm’s response was very quick, with an exposure time of approximately 3 hours.\nCongratulations to the npm team. 🥳","datePublished":"2026-03-31T05:01:20.342Z","url":"https://daily.dev/posts/RlEVDfzaA#c-7TEXlzyHs","author":{"@type":"Person","name":"Álvaro Guimarães","url":"https://daily.dev/alvarogfn","image":"https://avatars.githubusercontent.com/u/62889807?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":71}},{"@type":"Comment","text":"For europeans working 9to5 its pretty unlikely that their personal dev machines are affected because it was available only at midnight.","datePublished":"2026-03-31T13:02:48.769Z","url":"https://daily.dev/posts/RlEVDfzaA#c-0jh9OMYUf","author":{"@type":"Person","name":"Fabian Letsch","url":"https://daily.dev/fabianletsch","image":"https://lh3.googleusercontent.com/a/ACg8ocKR6BVy_wn23EoOKq7-BlszlcXcLmASlnb7l-GtS-q1bePnkaJf=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4}},{"@type":"Comment","text":"The attacks keep coming! Every time I read on of these I clinch up 😓 never know if you’re going to get hit.\nSomebody definitely needs to do something about these.","datePublished":"2026-03-31T14:01:15.309Z","url":"https://daily.dev/posts/RlEVDfzaA#c-k60F6Grz5","author":{"@type":"Person","name":"Peter Cruckshank","url":"https://daily.dev/petecapecod","image":"https://media.daily.dev/image/upload/s--ZJhQyKws--/f_auto/v1721235024/avatars/avatar_A9xh33q0QoxtkGoJRCosp"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4}},{"@type":"Comment","text":"This is really scary because it shows how much we trust packages we use every day without even thinking about it. Most developers probably don’t even think about Axios because it’s so common. That’s what made this attack so dangerous.\nWhat struck me the most was how well-planned this was. The attackers didn’t even have to change Axios itself; they just added a dependency that most people wouldn’t notice. It shows that even a small update to a package can have a big effect when it is used in a lot of projects.\nI also think this shows that depending on the newest versions without lockfiles or pinned dependencies is more dangerous than ever. Most developers are not constantly checking release tags, CI pipelines, or unusual dependencies during installs, especially for libraries they already trust. This attack is a strong reminder that secure defaults should be built into package managers because one compromised maintainer account can affect a huge part of the ecosystem very quickly.","datePublished":"2026-04-01T07:30:48.252Z","url":"https://daily.dev/posts/RlEVDfzaA#c-Ki5Iqmr6q","author":{"@type":"Person","name":"Shaswat Shrivas","url":"https://daily.dev/shaswat_shrivas","image":"https://media.daily.dev/image/upload/s--LNnM28mC--/f_auto/v1774193329/avatars/avatar_RslRc74HTXYv9Xn0Nwv4n?_a=BAMAMiWQ0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3}},{"@type":"Comment","text":"I feel this gonna happen more and more","datePublished":"2026-04-01T01:32:07.709Z","url":"https://daily.dev/posts/RlEVDfzaA#c-97qdrW210","author":{"@type":"Person","name":"Manthankumar Satani","url":"https://daily.dev/itsmnthn","image":"https://media.daily.dev/image/upload/s--XpFWj1ND--/f_auto/v1749054653/avatars/avatar_iBTDQoV5Y?_a=BAMClqUq0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3}}]}
```

