Skip to content
Cyber Army LogoCyber Army™
lodashexpressaxiosv1.14.1 ☠chalkcompromiseddebugcompromisedsemvercompromisedyour-appinfectednext.jsinfectedreactinfectedeslintinfectedCYBER ARMY · SECURITY RESEARCH · 2026Supply Chain Attacks 2025–2026: Axios, Shai-Hulud, Chalk/Debug, TeamPCP
Security ResearchPublished 2026-04-03By Cyber Army Security Team

Software Supply Chain Attacks 2025–2026:
The 2025–2026 Complete Breakdown

From the Axios npm RAT to the TeamPCP cross-platform campaign: supply chain attacks reached unprecedented scale in 2025–2026, spanning npm, PyPI, GitHub Actions, and container registries simultaneously. This article documents every major incident, explains how each attack worked, and outlines what security teams can do to detect and remediate automatically.

TL;DR

  • Supply chain attacks now regularly expose billions of weekly downloads to malware, RATs, and secret-stealing code
  • Attackers target npm maintainer accounts, confuse package registries, and publish infected versions of trusted libraries
  • Traditional security scanning misses these attacks because the malicious code is inside legitimate, widely-used packages
  • Automated dependency monitoring and auto-patching (not manual review) is the only realistic defence at scale

What is a software supply chain attack?

A software supply chain attack targets the components, libraries, build tools, or vendors that your code depends on, rather than attacking your systems directly. Instead of breaking through your firewall, attackers compromise something you trust and install every time you run npm install.

The technique is devastatingly effective because security teams rarely scrutinise the internals of packages they depend on. A developer adding chalk to colorise terminal output is not going to audit 50,000 lines of transitive dependency code. Attackers know this.

Supply chain attacks can be executed several ways: compromising a maintainer's npm account via phishing, publishing a malicious package with a name similar to a popular one (typosquatting), injecting malicious code into a build pipeline, or exploiting a dependency confusion vulnerability in private registries. In 2025–2026, all of these vectors were actively exploited at scale.

Axios npm RAT — March 2026

Reported by: npm security team and community researchers via GitHub advisories

CRITICALMarch 31, 2026
100M+ weekly weekly downloads

Axios Remote Access Trojan

Packages affected

axios@1.14.1, axios@0.30.4

Attack vector

Compromised npm publish credentials

Impact

Cross-platform RAT distributed via trusted package

Malicious versions 1.14.1 and 0.30.4 of Axios (one of the most widely-used HTTP client libraries with over 100 million weekly downloads) were published to npm containing a cross-platform remote access trojan. The malicious versions were available for approximately three hours before being identified and removed. Any project that ran npm install during that window may have installed the compromised version. The RAT was capable of establishing persistent remote access, exfiltrating data, and executing arbitrary commands on affected systems. Given the ubiquity of Axios in both frontend and backend JavaScript applications, the potential exposure was enormous.

What to check immediately:

Audit your package-lock.json and yarn.lock files for axios versions 1.14.1 or 0.30.4. If found, update to axios@1.7.9 or later (1.x) or axios@0.28.1 or later (0.x). Check deployment logs from March 31, 2026 for any unusual network connections or process spawning.

Shai-Hulud Worm — September 2025

Analysis by: Trend Micro, Sonatype

CRITICALSeptember 2025
Hundreds of millions collectively weekly downloads

Shai-Hulud Self-Propagating Supply Chain Worm

Packages affected

500+ npm packages (initial: ~180, grew to 500+)

Attack vector

Worm propagation via stolen npm credentials and auto-republish

Impact

Cloud secret exfiltration, credential theft, registry poisoning

The Shai-Hulud worm represented a new category of supply chain attack: a self-propagating worm that targeted the npm ecosystem specifically. Once it compromised an initial set of packages, it extracted maintainer credentials from the environment, used them to publish new infected versions of additional packages, and so on recursively. The worm was designed primarily to steal cloud credentials (AWS, GCP, Azure tokens), CI/CD pipeline secrets, and environment variables from any system that installed affected packages. Within a short period, it spread from approximately 180 initial packages to over 500, each republishing infected versions that continued the chain.

Indicators of compromise:

  • ·Unexpected outbound connections to unknown endpoints from CI/CD runners
  • ·Cloud credential usage from unusual IPs or regions
  • ·npm publish events in your pipeline you did not initiate
  • ·New versions of your own packages appearing in the registry without a corresponding release

Chalk / Debug Compromise — September 2025

Discovered by: Aikido Security · Analysis: Wiz, Sonatype, Semgrep, ArmorCode, Vercel

CRITICALSeptember 8, 2025
2.6B+ weekly combined weekly downloads

Chalk, Debug, DuckDB and 25+ Other Packages — Crypto Wallet Drainer

Packages affected

chalk, debug, ansi-styles, strip-ansi, supports-color, duckdb, and 21+ others (27+ total confirmed)

Attack vector

Maintainer phishing via fake domain npmjs.help — TOTP bypass, account takeover in minutes

Impact

Browser-side crypto wallet drainer silently redirecting transactions using Levenshtein address spoofing

On September 8, 2025, attackers registered npmjs.help to impersonate npm support and phished Josh Junon (alias qix), maintainer of chalk. Within 16 minutes of account takeover, malicious versions of 18 packages were published. The payload was a browser-side crypto wallet drainer hooking fetch(), XMLHttpRequest, and window.ethereum to intercept transactions and rewrite wallet destinations using Levenshtein distance matching — making spoofed addresses visually indistinguishable. A second maintainer account was also compromised, adding duckdb packages. Detected by Aikido Security at 13:15 UTC. Malicious versions were live for approximately 2 hours. 27+ packages ultimately confirmed compromised.

Affected packages included:

chalk · debug · ansi-styles · strip-ansi · supports-color · color-convert · color-string · color-name · ansi-regex · wrap-ansi · has-ansi · slice-ansi · duckdb · duckdb-wasm · and 13+ others. Full list: npm advisory database.

Nx / s1ngularity Attack — August 2025

Reported by: Upwind Security

HIGHAugust 2025
Millions of enterprise development environments weekly downloads

Nx Monorepo Tool and s1ngularity Compromise

Packages affected

@nx/* packages, s1ngularity

Attack vector

Build tool compromise targeting enterprise monorepo pipelines

Impact

CI/CD pipeline infiltration, source code exfiltration risk

The Nx attack targeted enterprise development teams using the Nx monorepo build tool. Attackers compromised packages in the @nx scope, embedding malicious code designed to exfiltrate source code and CI/CD secrets from enterprise build pipelines. The s1ngularity package, a dependency in several popular development tool chains, was also compromised simultaneously. This attack was particularly sophisticated because it targeted build-time rather than runtime, meaning the malicious code executed during development and CI/CD processes rather than in production, making it harder to detect with traditional runtime monitoring.

Enterprise risk profile:

If your organisation uses Nx for monorepo management, audit your lock files for affected @nx versions from August 2025. Review CI/CD pipeline logs for unexpected file access patterns or outbound data transfer during build phases.

TeamPCP Campaign — March 2026 (ongoing)

Discovered and reported by: Datadog Security Labs, Aikido Security, Wiz, StepSecurity

CRITICALMarch 19–27, 2026 (ongoing)
Tens of millions across npm, PyPI, and container registries weekly downloads

TeamPCP: Multi-Stage Cross-Platform Supply Chain Campaign

Packages affected

trivy, litellm, telnyx (PyPI); 40+ npm packages; Checkmarx KICS GitHub Action; OpenVSX extensions

Attack vector

Stolen credentials, self-propagating worm, GitHub Actions compromise

Impact

Full credential exfiltration, Kubernetes destruction on Iranian targets, persistent backdoors

TeamPCP is a coordinated, multi-stage supply chain campaign that moved systematically across ecosystems in March 2026. Starting with stolen credentials on March 19, the threat actor compromised the Trivy container security scanner (used by millions of CI/CD pipelines), then deployed a self-propagating npm worm across 40+ packages, then pivoted to Checkmarx KICS and OpenVSX extensions, and finally reached PyPI with backdoored releases of LiteLLM and Telnyx. Each stage harvested credentials from the environment to fund the next compromise.

Campaign timeline

March 19

Trivy compromised

Aqua Security

Stolen credentials used to publish malicious trivy v0.69.4 and force-push 76 GitHub Action tags. Release machinery propagated the compromise to GHCR, Docker Hub, ECR Public, deb/rpm packages, and get.trivy.dev. Malicious actions dumped CI runner memory, scraped credentials, and exfiltrated via a lookalike domain.

Disclosed by Aqua Security, analysed by StepSecurity
March 20–22

CanisterWorm deploys across npm

Multiple publishers

A self-propagating npm worm spread across 40+ packages across multiple publisher scopes including @EmilGroup (28 packages), @opengov (16 packages), and others. The worm stole npm tokens from infected environments, resolved which packages each token could publish, bumped patch versions, and republished with malicious payloads. A Kubernetes-targeting script simultaneously deployed destructive payloads on Iranian systems and persistent backdoors elsewhere.

Discovered by Aikido Security
March 23

Checkmarx KICS and OpenVSX

Checkmarx / Eclipse

The same credential-theft pattern reached Checkmarx KICS GitHub Actions and two OpenVSX VS Code extensions. The KICS payload used a stealer tied to a lookalike domain, falling back to creating a public repository with the victim GITHUB_TOKEN to exfiltrate data.

Discovered by Wiz
March 24

LiteLLM backdoored on PyPI

LiteLLM

litellm 1.82.7 and 1.82.8 published with malicious payload. The malware collected environment variables, SSH keys, cloud credentials, Kubernetes configs, Docker configs, shell history, database credentials, wallet files, and CI/CD secrets, encrypted them locally, and exfiltrated. PyPI quarantined the project after discovery.

Discovered by Datadog Security Labs
March 27

Telnyx backdoored on PyPI

Telnyx

telnyx 4.87.1 and 4.87.2 backdoored with the same credential exfiltration payload. Any host or CI job that installed these versions should be treated as a full credential exposure event.

Reported by Datadog Security Labs

If you installed any affected packages:

Treat it as a full credential exposure event. Rotate all secrets, cloud credentials, SSH keys, and tokens present in that environment. Review CI/CD pipeline logs for unexpected outbound connections. Check for Kubernetes DaemonSet deployments you did not authorise. Do not rely on package removal alone.

Common attack vectors: how supply chain attacks work

Account takeover via phishing

Attackers phish npm maintainer credentials, then use the legitimate account to publish a new malicious version. This is how Chalk/Debug was compromised. The published version looks legitimate because it comes from the real maintainer account.

Dependency confusion

Attacker publishes a public package with the same name as a company's private internal package. npm's registry resolution may fetch the public malicious one instead of the private legitimate one. Particularly dangerous in enterprise environments with private registries.

Typosquatting

Publishing packages with names nearly identical to popular ones (e.g., "chal" instead of "chalk", "axois" instead of "axios"). Developers who mistype the package name install the malicious version.

Worm propagation

Like Shai-Hulud, the malware extracts credentials from the infected environment and uses them to publish new infected versions of other packages, spreading autonomously across the registry.

Malicious maintainer

An existing or newly accepted maintainer introduces malicious code gradually over time, or in a single release. Sometimes executed by a compromised package author who sells maintainer rights to bad actors.

Build tool injection

Compromising build tools (like the Nx attack) means the malicious code runs during CI/CD, before the software even reaches production. Traditional runtime security completely misses this.

How to detect supply chain attacks

Traditional vulnerability scanning checks your code against a database of known CVEs. It cannot detect a newly published malicious package version that was not in the database when the scan ran. Supply chain defence requires a different approach.

01

Continuous dependency monitoring

Monitor your dependency manifests against live feeds (npm advisories, OSV, and the GitHub Advisory Database) in real time, not on a nightly batch schedule. The Axios attack window was three hours. A nightly scan would have missed it entirely.

02

Version anomaly detection

Monitor for unexpected version bumps in your lockfiles, especially patch versions of stable packages. A package like chalk releasing a new version with no corresponding GitHub release or changelog is a strong signal of compromise.

03

Behavioral analysis in CI/CD

Monitor CI/CD pipelines for unexpected network connections, file system access outside the build directory, or environment variable access by build scripts. This catches build-time attacks like Nx that traditional runtime monitoring misses.

04

Lockfile integrity verification

Verify that your package-lock.json or yarn.lock is committed and matches exactly what was audited. Attackers sometimes modify lockfiles directly to pin a malicious version without changing package.json.

05

Provenance and signing verification

npm now supports package provenance: cryptographic proof that a package was built from a specific git commit on a specific CI system. Enable provenance verification where possible and treat unsigned packages as higher risk.

Automated remediation: the only scalable defence

The Axios attack lasted three hours. The Shai-Hulud worm spread to 500+ packages. The Chalk/Debug compromise exposed 2 billion weekly downloads. At this scale and speed, manual triage and patching is not a viable defence strategy. By the time a security engineer has investigated, triaged, and manually updated the package across all affected services, the damage may already be done.

The only realistic defence is automated detection and patching that operates continuously and acts in minutes, not days.

How CyberArmy AutoFix handles supply chain attacks

Continuous scanning

AutoFix monitors your dependency tree across all repositories against live threat intelligence including npm advisories, OSV, and CVE feeds, in real time.

Compromise detection

Detects version anomalies, unexpected republications, and behavioral signatures of newly compromised packages within minutes of their appearance.

Auto-patch generation

Automatically generates a pinned upgrade to the safe version, creates a pull request with full explanation, and requires human review before merge.

Prod-clone verification

Tests the patch in an isolated production clone before any change reaches your real environment. Instant rollback if tests fail.

CI/CD pipeline protection

Monitors build pipelines for supply chain attack indicators: unexpected network calls, environment variable access, and unusual file operations.

Full audit trail

Every detection, patch, and deployment logged with timestamps for SOC 2, PCI-DSS, and compliance evidence.

Security team checklist

If you are reviewing your supply chain security posture after reading this, here is a prioritised action list:

Immediate

Audit lockfiles for Axios 1.14.1/0.30.4, affected chalk/debug versions (Sept 2025), and @nx packages from August 2025.

Immediate

Check deployment and CI/CD logs from March–September 2025 for unusual outbound connections, unexpected process spawning, or credential usage from unknown IPs.

This week

Enable npm provenance verification on all internal packages and CI/CD pipelines.

This week

Configure lockfile integrity checks in your CI pipeline. Build should fail if lockfile differs from what was committed.

This month

Implement continuous dependency monitoring against OSV and npm advisory feeds. Real-time, not nightly batch.

This month

Review and rotate all secrets and cloud credentials that were present in CI/CD environments during the Shai-Hulud window (August–September 2025).

Ongoing

Automate dependency patching with human review gates. Manual patching cannot keep pace with the speed of supply chain attacks.

Ongoing

Monitor for package version anomalies. Set automated alerts when a stable dependency publishes an unexpected new version.

Research credits

This article draws on original research and disclosures from the security community. We credit each team below and encourage you to read their full reports.

Datadog Security Labs

Nick Frichette, Sebastian Obregoso, Christophe Tafani-Dereeper, Emile Spir

Full investigation of the TeamPCP campaign including LiteLLM, Telnyx, and cross-ecosystem attribution.

StepSecurity

StepSecurity Research

Technical analysis of the Trivy v0.69.4 malicious release and exfiltration mechanism.

Aqua Security

Aqua Security Team

Disclosed the Trivy compromise and GitHub advisory for affected versions.

Aikido Security (Chalk/Debug)

Aikido Security Research

First to detect the Chalk/Debug npm attack at 13:15 UTC on September 8, 2025. Also discovered the TeamPCP CanisterWorm npm propagation.

Trend Micro

Jeffrey Francis Bonaobra, Joshua Aquino

Detailed technical analysis of the Shai-Hulud worm, including its GitHub Actions propagation mechanism and Cryptohijacker payload.

Sonatype

Sonatype Security Research Team

Tracked additional compromised packages including duckdb across multiple incidents, and maintains the open source vulnerability timeline.

Semgrep

Semgrep Supply Chain Team

Published open-source detection rules for all compromised Chalk/Debug package versions, available to the entire community.

ArmorCode

ArmorCode Research

Comprehensive analysis of the September 2025 npm attack scale, confirming 200+ compromised packages and the Levenshtein wallet-address spoofing technique.

Wiz (Chalk/Debug + Checkmarx)

Hila Ramati, Gal Benmocha, Danielle Aminov

Cloud environment telemetry and impact analysis of Chalk/Debug, and disclosure of the Checkmarx KICS GitHub Action compromise (TeamPCP).

Vercel

Vercel Security Team

Transparent incident response report identifying 70 affected teams, purging build caches, and notifying impacted customers within hours.

npm / PyPI Security

npm and PyPI security teams

Registry-level quarantine and removal of compromised packages across multiple incidents.

Published by Cyber Army Security Team · 2026-04-03

440 N Wolfe Rd, Sunnyvale, CA 94085 · cyberarmy@codeproof.com