Your Vibe-Coded App Just Became a RAT Launcher: The Axios NPM Attack Every Bootstrapped Founder Must Know About

The Axios npm supply chain attack (March 31, 2026) deployed a cross-platform remote access trojan on 100M+ developer machines. If you vibe-code, your startup is exposed. Check your package.json now.

MEAN CEO - Your Vibe-Coded App Just Became a RAT Launcher: The Axios NPM Attack Every Bootstrapped Founder Must Know About |

Let me say something that will irritate every “just ship it” vibe-coding evangelist you follow on X right now: the fastest way to destroy your bootstrapped startup in 2026 is to keep running npm install without knowing what you are actually installing.

This is not a lecture. This is me telling you that on the night of March 30-31, 2026, an attacker hijacked the npm account of the primary maintainer of Axios, one of the most downloaded JavaScript packages in the world, and silently dropped a cross-platform remote access trojan onto every machine that ran npm install during a roughly two-hour window. If you or your vibe-coded app installed axios@1.14.1 or axios@0.30.4, assume your system is fully compromised. Assume your API keys, SSH keys, cloud tokens, and any credentials stored on that machine are now in the hands of someone else.

And if you are a solo founder who used AI to ship your MVP fast, here is the uncomfortable truth: you are the highest-risk profile for this exact attack.


Table of Contents

TL;DR

On March 31, 2026, axios versions 1.14.1 and 0.30.4 were confirmed malicious after an attacker compromised the npm account of the package’s lead maintainer. The poisoned versions automatically installed a hidden dependency called plain-crypto-js@4.2.1 which deployed a cross-platform RAT (Remote Access Trojan) targeting macOS, Windows, and Linux. The RAT called home to the attacker’s command-and-control server and stole credentials from developer machines. Axios has over 100 million weekly downloads. Safe versions are axios@1.14.0 and axios@0.30.3. If you installed the compromised versions, rotate all credentials immediately and treat your machine as compromised. This attack hit vibe-coders hardest because AI-assisted development typically skips the manual dependency review step that would have caught this.


What Actually Happened: The Axios Supply Chain Attack, Explained

Here is the attack chain, step by step, without jargon.

The attacker did not hack the Axios source code. They targeted something much weaker: the maintainer’s npm credentials.

According to StepSecurity’s emergency analysis of the Axios npm compromise, the attacker gained a long-lived classic npm access token belonging to jasonsaayman, the primary Axios maintainer. With that token, they had the same publish rights as the maintainer himself. They then changed the account’s registered email to an attacker-controlled ProtonMail address, locking the real maintainer out of recovery flows, and manually pushed two new Axios versions directly to the npm registry, completely bypassing Axios’s GitHub Actions CI/CD pipeline.

The attack was pre-staged across 18 hours. Here is the timeline:

That clean decoy version published 18 hours earlier is the sophisticated part. Socket’s technical breakdown of the Axios npm compromise confirms the strategy: seeding a “clean” version first gives the package a brief history on the registry, reducing the chance that new-package scanners would flag it instantly.

The malicious payload itself is described by Picus Security’s Axios npm attack analysis as a cross-platform RAT dropper. It used two layers of obfuscation: reversed Base64 encoding with substituted padding characters, plus an XOR cipher. After execution, it contacted the attacker’s C2 server at sfrclak[.]com:8000, downloaded platform-specific second-stage payloads for macOS, Windows, or Linux, executed them, then deleted itself and replaced its own package.json with a clean version to evade forensic detection.

Anyone who inspected node_modules/plain-crypto-js after the fact would see an innocent-looking package. The only proof of execution: the plain-crypto-js folder existing at all.


Why This Is a Vibecoding Problem First

Let me be direct about something the mainstream security coverage is dancing around.

This attack would have been significantly harder to pull off against a team with a proper security culture and a manual dependency review process. The reason it succeeded at scale is the same reason supply chain attacks keep getting more dangerous: the modern development workflow, and especially AI-assisted vibe-coding, runs npm install at extreme speed without looking.

Veracode’s GenAI Code Security Report found that 45% of AI-generated code introduces security vulnerabilities, with many large language models choosing insecure patterns nearly half the time. And as Checkmarx research on vibe coding security documents, one-third of organizations now produce over 60% of their code via AI, yet only 18% maintain approved tooling standards.

Here is the specific mechanism that makes vibe-coders the highest-risk group for supply chain attacks:

When you prompt Claude Code, Cursor, or Lovable to “build me a feature that makes API calls,” the AI reaches for Axios automatically. It is the dominant HTTP client in the JavaScript ecosystem with, per Snyk’s coverage of the Axios supply chain attack, over 300 million weekly downloads. The AI adds it to package.json and runs npm install as part of its workflow. You see a working feature. You ship it. At no point did you look at whether the Axios version pulled was the current one, what its dependency tree now included, or whether anything in node_modules had a postinstall script.

That postinstall hook is where this attack lived. Within two seconds of npm install, per StepSecurity’s Axios compromise write-up, the malware was already calling home to the attacker’s server, before npm had finished resolving dependencies.

Two seconds.

I build two bootstrapped startups, CADChain and Fe/male Switch, and I write about what actually works at the Mean CEO blog. In both cases, I use AI heavily for development speed. And in both cases, I have made the mistake of trusting AI output a little too much when it comes to dependencies. The Axios incident is the most expensive lesson that mistake can deliver.


What the Attack Means for Your Bootstrapped European Startup

If you are running a lean startup in Europe on a tight budget, you are particularly exposed. Here is why.

Enterprise security stacks, the kind that enterprise teams use to catch this, cost serious money. Snyk Enterprise, StepSecurity’s paid tiers, Endor Labs, and similar tools that would have flagged this in CI/CD in real time are typically priced for teams with a dedicated security budget. When you are a solo founder building a language learning platform like Learn Dutch with AI or a small team running a restaurant discovery site like Healthy Restaurants in Malta, you are not buying a $2,000/month software composition analysis tool.

So you run free tools, or you run nothing.

And that is the gap attackers exploit.

The good news is that the mitigations for this specific class of attack are free or very cheap. The bad news is they require deliberate process changes that vibe-coding culture actively discourages.


Immediate Incident Response: What to Do Right Now

If your development machine or CI/CD pipeline ran npm install during the window from approximately 00:21 UTC to 03:29 UTC on March 31, 2026, treat it as compromised.

Step 1: Check if you are affected

Run this in any project directory you installed packages in during the window:

npm list axios

If you see axios@1.14.1 or axios@0.30.4, you are affected. Also check for the presence of plain-crypto-js in your node_modules.

ls node_modules | grep plain-crypto

If that folder exists, the dropper has already executed. Its presence is proof of compromise even if the malware deleted itself.

Step 2: Downgrade Axios

Per Techzine’s Axios supply chain attack coverage, safe versions are:

In your package.json, pin to these versions explicitly.

Step 3: Rotate all credentials on affected machines

This is non-negotiable. Rotate in this order:

Step 4: Reinstall with scripts disabled

rm -rf node_modules
npm install --ignore-scripts

The --ignore-scripts flag prevents postinstall hooks from running. This should become your default for any package you have not manually audited.

Step 5: Audit your CI/CD pipeline

Review build logs for the March 31 UTC window. Any pipeline run that pulled a fresh install during that period should be treated as potentially compromised.


The SOP: How to Protect Your Bootstrapped Startup From Supply Chain Attacks Going Forward

Here is the standard operating procedure I now follow across CADChain, Fe/male Switch, Learn Dutch with AI, and every other project I touch. Adapt it for your stack.

Before Every New Package Addition

  1. Check the package on npmjs.com directly. Look at the maintainer accounts, the publish history, and the weekly download count.
  2. Run npm audit after adding any new dependency.
  3. Look at the dependency tree of what you are adding. The real Axios has exactly three dependencies: follow-redirects, form-data, proxy-from-env. If a package adds unexpected transitive dependencies, ask why.
  4. Check the latest GitHub release tag against what npm shows as the latest version. If they do not match, that is a red flag.

In Your package.json

Use exact version pins, not caret ranges. Replace "axios": "^1.14.0" with "axios": "1.14.0". Caret ranges (like ^1.14.0) mean your next npm install automatically pulls in any new 1.x version. That is how any project using ^1.14.0 would have pulled in the malicious 1.14.1 automatically.

In Your CI/CD Pipeline

Add --ignore-scripts as the default flag on all installs in CI:

npm ci --ignore-scripts

Also add Socket.dev’s free GitHub app to your repositories. It is free for open-source projects and caught the malicious plain-crypto-js package within six minutes of publication. That six-minute detection window versus the two-hour malicious window is the difference between “we caught it” and “we are rotating credentials.”

Regular Audits

Run npm audit on every project once a week. Set a calendar reminder. On projects built with vibe-coding tools, run it after every AI-assisted development session before you commit.


The Insider Tricks: What Security Researchers Know That Vibe-Coders Don’t

Here are the things working security professionals do that AI coding assistants will never tell you to do.

Pin to exact versions in production. Package managers default to caret ranges for convenience. In production, convenience is a liability. Every package in your production package.json should be an exact version.

Use a lockfile and commit it. Your package-lock.json or yarn.lock file is your snapshot of what you actually installed. Commit it to version control. Review changes to it in every pull request. When the lockfile changes, ask why.

Run npm ci instead of npm install in CI. npm ci installs exactly what is in your lockfile, not the latest versions that match your ranges. It is deterministic. It is what you want in automated builds.

Block outbound egress in CI. StepSecurity’s Harden-Runner is free for public repositories and monitors outbound network connections during CI runs. It flagged the C2 callback to sfrclak.com:8000 in the Backstage repository during a routine CI run, which is how some teams learned they were affected before they even checked the news.

Check that npm publish tags match GitHub release tags. This attack was detectable because axios@1.14.1 appeared on npm but not in the Axios GitHub repository tags. A five-second check at the GitHub releases page would have revealed the mismatch.

Avoid long-lived npm tokens. The attacker likely obtained a long-lived classic npm access token. Use short-lived tokens tied to specific package publish rights, and require MFA on publish. npm supports this, but most maintainers do not enable it.


Mistakes Bootstrapped Founders Make (That Make This Worse)

I have made several of these myself. Listing them here so you do not have to learn them the hard way.

Storing API keys in .env files on your laptop. If a RAT runs on your machine, it will find and exfiltrate anything in plaintext on your filesystem. Store secrets in a vault, not flat files, wherever possible.

Never running npm audit. Most vibe-coders run it exactly zero times. npm audit would not have caught this specific attack (because it was a legitimate package, not a known-vulnerable one) but it builds the habit of checking your dependency tree.

Trusting that npm packages are safe because they are popular. Axios is one of the most popular packages in the world. Chalk, Debug, and other extremely popular packages were compromised in the September 2025 Shai-Hulud worm attack via a maintainer phishing campaign. Popularity offers zero protection.

Letting AI assistants add packages without review. This is the biggest one. When Claude Code or Cursor adds a dependency to your project, treat it as a suggestion, not an action you approved. Check the package. Pin the version. Audit.

Skipping security review before launch. The February 2026 Moltbook breach, a social network built entirely through vibe-coding, exposed 1.5 million authentication tokens and 35,000 email addresses because nobody reviewed the AI-generated database configuration before shipping. Per Sainam’s vibe coding security analysis, that root cause was not a sophisticated hack. It was unchecked AI output in production.


What This Means for AI SEO and Your Startup’s Content Strategy

This attack happened on March 31, 2026. Articles covering it comprehensively and accurately, from a practitioner point of view, will rank for months because the topic has high search volume and limited quality coverage.

At Fe/male Switch and the Mean CEO blog, I have documented what I learned about getting AI systems to cite bootstrapped startup content. You need original data, practitioner voice, and entity-rich structure. This article is structured exactly that way because generative engine optimization research from Enrich Labs shows that original perspectives from identifiable authors create a compounding citation network that traditional keyword-stuffing never achieves.

The Axios attack is a search entity with high recency value. If you write about it in your niche (developer tools, SaaS, startup security), do it now and do it with primary sources.


How to Audit Your Vibe-Coded Projects: A Checklist

Copy this before you ship anything built with AI assistance.

Dependencies

Credentials

CI/CD

Post-Vibe-Coding Session


The Business Cost Nobody Is Talking About

Security teams at large companies measure this in CVSS scores and compliance metrics. Bootstrapped founders measure this in survival.

Let me be concrete. If your machine ran the compromised Axios version and a RAT exfiltrated your Stripe API keys, your Hetzner cloud credentials, and your npm publish token, here is what happens next: your Stripe account gets drained or used for fraud, your cloud infrastructure gets used for crypto mining or attack hosting (and you pay the bill), and your npm packages get compromised to attack your users.

At CADChain, we protect CAD file intellectual property for engineers. A credential leak from a compromised developer machine could expose client IP data, which is our entire product proposition. The cost of that is not a CVSS score. It is the end of the company.

For a restaurant guide like Healthy Restaurants in Malta or a language learning product like Learn Dutch with AI, the stakes are slightly lower, but a compromised server that starts serving malware to users destroys SEO rankings, triggers Google Safe Browsing warnings, and kills organic traffic that took months to build.

Security is not a cost for bootstrapped European startups. It is founder insurance.


Free and Low-Cost Tools That Would Have Caught This

You do not need an enterprise security budget. Here is what works at or near zero cost.

The specific tool that caught this attack fastest was Socket. Their automated malware detection flagged plain-crypto-js@4.2.1 within six minutes of publication. Six minutes. That is the gap between prevention and a fully installed RAT.


FAQ: Axios NPM Supply Chain Attack and Vibecoding Security

What is the Axios npm supply chain attack?

The Axios npm supply chain attack occurred on March 31, 2026, when an attacker compromised the npm credentials of the lead Axios maintainer and published two malicious versions of the package: axios@1.14.1 and axios@0.30.4. Both versions contained a hidden dependency, plain-crypto-js@4.2.1, which deployed a cross-platform remote access trojan on any machine that ran npm install during the roughly two-hour window the malicious packages were live. Axios is a JavaScript HTTP client with over 100 million weekly downloads, making the potential blast radius of this attack enormous. The attack bypassed the project’s GitHub Actions CI/CD pipeline entirely because the attacker published directly to npm using a stolen long-lived access token. The attack was pre-staged 18 hours in advance by first publishing a clean decoy version of plain-crypto-js to avoid detection.

How do I know if I was affected by the Axios npm attack?

Check your project directories for the compromised versions by running npm list axios. If the output shows axios@1.14.1 or axios@0.30.4, you were exposed. Also run ls node_modules | grep plain-crypto in any project directory where you installed packages during the window from 00:21 to 03:29 UTC on March 31, 2026. If the plain-crypto-js folder exists, the malware dropper executed on that machine, regardless of whether the malware then deleted itself. The presence of the folder is definitive evidence of compromise.

What should I do immediately if I installed the compromised Axios version?

Assume your machine is fully compromised. Rotate all credentials stored on or accessible from that machine: npm tokens, cloud provider API keys, SSH keys, GitHub and GitLab personal access tokens, CI/CD pipeline secrets, database credentials, .env file contents, and payment processor keys. Remove the compromised Axios versions and reinstall with npm install --ignore-scripts after pinning to safe versions: axios@1.14.0 for 1.x users or axios@0.30.3 for 0.x users. Review your CI/CD build logs for the March 31 window to determine which pipeline runs installed the affected versions. Block egress traffic to sfrclak[.]com at the network level.

Why does this attack specifically affect vibe-coders more than traditional developers?

Vibe-coding, the practice of using AI tools like Claude Code, Cursor, or Lovable to generate working code from natural language prompts, produces functional output very quickly. That speed comes with a structural blind spot: the human rarely reviews what packages the AI adds to package.json or what their dependency trees contain. AI tools reach for popular packages like Axios automatically without checking whether the current version is safe. Traditional developers who manually manage dependencies and run npm audit as part of their workflow would be more likely to catch an unexpected new version. Vibe-coders who trust AI output and ship fast are the highest-risk profile for supply chain attacks precisely because the attack surface is in the dependency management layer, not the application code layer.

What is a supply chain attack and why does it matter for small startups?

A supply chain attack targets the tools and packages your code depends on rather than your code directly. In the npm ecosystem, this means compromising a legitimate, trusted package and using it as a vector to install malware on developer machines and CI/CD servers. For small startups, the business risk is existential in ways it is not for large enterprises: credential theft can drain payment accounts, expose client data, compromise server infrastructure, or result in your npm packages being used to attack your own users. Large enterprises have security teams that monitor for this. Bootstrapped founders typically do not, which makes them a softer target and means the damage per incident is proportionally larger.

How can I protect my startup from npm supply chain attacks on a zero budget?

Several high-quality free tools exist. Install Socket.dev’s GitHub app, which is free for open-source repositories and detected the malicious plain-crypto-js package within six minutes of publication. Use npm ci --ignore-scripts instead of npm install in CI/CD pipelines to disable postinstall hooks, the primary execution vector for this class of attack. Run npm audit after every development session and before every deployment. Pin all dependencies to exact versions in package.json instead of using caret ranges. Add StepSecurity Harden-Runner to your GitHub Actions workflows, free for public repositories, to monitor outbound network connections from CI runs. Commit and review your lockfile in every pull request so unexpected dependency additions are visible.

What is a Remote Access Trojan (RAT) and what can it do to my startup?

A Remote Access Trojan (RAT) is malware that gives an attacker remote control over a compromised machine. In this attack, the RAT contacted a command-and-control server and received platform-specific payloads for macOS, Windows, and Linux. Once installed, a RAT can steal credentials stored on the machine, exfiltrate files, capture keystrokes, access browser sessions, harvest cloud API tokens and SSH keys, and use the machine as a launch point for further attacks. For a bootstrapped founder whose laptop is their entire development environment, a RAT gives an attacker access to everything: your cloud infrastructure, your payment accounts, your customers’ data, and your company’s intellectual property. The RAT in this attack was specifically designed to target developers and harvest development credentials.

Why did the attacker target Axios specifically?

Axios was targeted because of its scale. With over 100 million weekly downloads and usage across virtually every Node.js and browser project that makes HTTP requests, compromising Axios gives an attacker access to an enormous number of developer machines and CI/CD pipelines simultaneously. The attack is not about breaking Axios’s functionality. It is about using Axios’s trusted reputation and ubiquitous installation as a delivery vehicle. Any project using a caret range like ^1.14.0 would automatically pull the compromised version on its next npm install, without any human making a conscious decision to upgrade. The attacker also targeted both the 1.x and 0.x release branches simultaneously, maximizing the number of projects exposed.

How does this attack relate to the broader pattern of npm ecosystem security incidents?

This attack follows a pattern that has become increasingly common. In September 2025, the Chalk and Debug npm packages were compromised via a phishing attack on a maintainer account, using identical tactics: postinstall scripts that ran malware. In December 2025, the Shai-Hulud self-replicating worm stole an estimated 400,000 developer secrets via infected npm packages. The Axios attack is more sophisticated than both: pre-staged 18 hours in advance, targeting both major release branches simultaneously, with anti-forensic self-deletion built in. The pattern reveals a systemic weakness: the npm registry treats a valid token as the only authentication barrier for publishing. Until npm enforces MFA on all publish operations and deprecates long-lived classic tokens, maintainer credential compromise will remain the path of least resistance for supply chain attackers.

What changes should vibe-coders make to their workflow to prevent this class of attack?

Three changes matter most for bootstrapped founders who vibe-code. First, after every AI-assisted development session, review every package the AI added to package.json before committing. Look each one up on npm. Verify the version makes sense. Check that it appears in the package’s official GitHub release tags. Second, switch from npm install to npm ci --ignore-scripts for all automated installs, and from caret version ranges to exact version pins in all production dependencies. This eliminates the automatic-upgrade attack vector. Third, install Socket.dev’s free GitHub app on your repositories. It runs automatically on pull requests and would have flagged this attack before any machine was compromised. These three changes cost nothing and take under an hour to implement across your entire project portfolio.


What Happens Next

The Axios maintainer is actively working to understand and close the gap that allowed this compromise, per Socket’s reporting. The likely vector, a long-lived classic npm token used alongside trusted publishing, represents a known weakness in npm’s authentication model.

For the npm ecosystem broadly, Chainguard and other security researchers have been pushing for OIDC as the standard for package publishing, which would make credential-based attacks nearly impossible. MFA enforcement on all npm publish operations, including via CLI with custom tokens, would also significantly reduce the blast radius of future maintainer compromises.

For you, the bootstrapped founder, the lesson is not to stop using npm or to distrust every open-source package. Open-source is still the best economic model for building a startup on a lean budget. The lesson is to build a 15-minute weekly habit: run npm audit, review your lockfile diff, and check that your pinned versions match official release tags.

At Fe/male Switch, we teach founders that building a startup on a budget means being smart about risk, not avoiding risk. This attack is the exact category of risk that good process eliminates for free. The founders who get hit are the ones who skipped the process because shipping felt more urgent.

Shipping matters. And arriving with your credentials intact matters more.

MEAN CEO - Your Vibe-Coded App Just Became a RAT Launcher: The Axios NPM Attack Every Bootstrapped Founder Must Know About |

Violetta Bonenkamp, also known as Mean CEO, is a female entrepreneur and an experienced startup founder, bootstrapping her startups. She has an impressive educational background including an MBA and four other higher education degrees. She has over 20 years of work experience across multiple countries, including 10 years as a solopreneur and serial entrepreneur. Throughout her startup experience she has applied for multiple startup grants at the EU level, in the Netherlands and Malta, and her startups received quite a few of those. She’s been living, studying and working in many countries around the globe and her extensive multicultural experience has influenced her immensely. Constantly learning new things, like AI, SEO, zero code, code, etc. and scaling her businesses through smart systems.