Largest NPM Compromise in History – Supply Chain Attack consequences of the QIX Account Takeover in debug and chalk

Malware in npm: What the QXI Account Takeover Means for DevSecOps, ASPM, and Every JavaScript Teams
NPM Compromise Malware

TL;DR: A phished maintainer account published malicious versions of core npm utilities used across the web (see original post bluesky and tracker post . The payload intercepts crypto addresses in browser sessions, rewriting transactions to attacker wallets. If your build pulled any of the versions below, treat it as a security incident. Tracked in Github here. 

Then shift from scanner-driven noise to ownership-driven, remediation-aware exposure management so you can contain incidents faster the next time.


What happened

A prolific npm maintainer confirmed their account was hijacked via a forged 2FA reset email sent from a spoofed domain: support@npmjs.help. The attacker pushed tainted releases of widely used packages (list below), then used browser-only interceptors to tamper with crypto transactions. BleepingComputer traced the credential exfiltration form to a public VM endpoint and documented the phishing lure content in detail, including the “your account will be locked on September 10, 2025” scare line. Aikido’s analysis explains how the injected index.js acts as a web-layer interceptor and rewrites wallet destinations across Ethereum, Bitcoin, Solana, Tron, Litecoin, and Bitcoin Cash before signatures occur. GitHub issues from impacted projects corroborate the compromised versions and show maintainers racing to roll back and republish. 

Bleeping Computer: https://www.bleepingcomputer.com/news/security/hackers-hijack-npm-packages-with-2-billion-weekly-downloads-in-supply-chain-attack/ 

Key, verifiable signals from public sources:

  • Maintainer statement: “It was a 2FA reset email… slipped past me… I’m locked out of my npm account.” The list of affected versions appears in the same thread.
  • Phish domain and exfil URL observed: npmjs[.]help and https://websocket-api2[.]publicvm.com/… used to steal credentials.
  • Payload behavior: browser-only interceptor changing wallet destinations; not a Node-only runtime payload.
  • other domain compromise / Phishing npmjs.help
  • The phishing domain once resolved to 185.7.81.108, but is no longer accessible.
  • Victims were redirected to a fake settings page at https://www.npmjs[.]help/settings/qix/tfa/manageTfa?action=setup-totp.
  • The page loaded malicious scripts from attacker-controlled BunnyCDN buckets:

What is the impact on me/you?

This is a bit of the question we asked after the initial assessment, on one end the fixes were super fast


At around 9:30 AM ET, an attacker compromised all packages published by Qix, including extremely popular packages such as chalk and debug-js. On the same day, the packages were recalled. This is to be celebrated, very fast reaction, thanks to the early notification from Aikido Security to the maintainer. Collectively, these libraries account for over 2 billion downloads per week, making this the largest supply chain attack in history.

Despite the scale, the attacker has stolen very little:

  • Roughly $0.05 in ETH
  • About $20 in a low-volume memecoin

The real damage is operational:

  • Thousands of engineering and security hours wasted cleaning up build pipelines.
  • Millions of dollars in scanning and services will follow /assessment, hence why we open source our scanner for this: https://github.com/Security-Phoenix-demo/Qxi-npm-compromise-checker
  • Another stark reminder that registry trust is brittle and can collapse with a single phished maintainer.

Affected packages and versions (as declared by the maintainer)

  • ansi-styles@6.2.2
  • debug@4.4.2
  • chalk@5.6.1
  • supports-color@10.2.1
  • strip-ansi@7.1.1
  • ansi-regex@6.2.1
  • wrap-ansi@9.0.1
  • color-convert@3.1.1
  • color-name@2.0.1
  • is-arrayish@0.3.3
  • slice-ansi@7.1.1
  • color@5.0.1
  • color-string@2.1.1
  • simple-swizzle@0.2.3
  • supports-hyperlinks@4.1.1
  • has-ansi@6.0.1
  • chalk-template@1.1.1
  • backslash@0.2.1

Note: Some packages were yanked quickly; do not assume “missing bad version” means safety. Validate your lockfiles and any cached artifacts pulled during the window. 


Why does this incident bites deep

Every product that renders text in a terminal, formats console output, or inspects strings likely touches one or more of these packages transitively. That reach turns one phished maintainer into a planet-scale blast radius—and that’s before counting caches, CI mirrors, or internal registries.

The kicker: the payload focuses on the browser. Many teams saw “Node runtime seems fine” and relaxed. Then they remembered their webpack/Vite/Rollup pipelines happily ship transitive utilities to the front end.

This is the modern reality for vulnerability management in the JavaScript ecosystem: dependency trees are dense, code moves from code to container to browser in minutes, and attackers optimize for reachability and user proximity.

This follows previous attacks in July, when attackers compromised eslint-config-prettier, a package with over 30 million weekly downloads, while in March, ten other widely used npm libraries were hijacked and turned into info-stealers.


Immediate response playbook for engineering leaders

Detect if you got the malware version: Made a quick script that will run npm cache ls on every affected package and will tell you if you pulled any vulnerable version. 

For a quick scanner and verification tool, refer to: https://github.com/Security-Phoenix-demo/Qxi-npm-compromise-checker 

other IOC to be aware (especially in crypto cybersecurity)

IOC Summary

  • Domains: npmjs[.]help, websocket-api2.publicvm[.]com
  • Wallets: 0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976, 19111111111111111111111111111111
  • Packages: chalk, debug, ansi-styles, ansi-regex, strip-ansi, supports-color, wrap-ansi, color-convert, color-name, color-string, simple-swizzle, chalk-template, backslash, and others.

Quick Usage

Option 1: Shell Script (Fast)

# Scan current directory

./quick_check.sh

# Scan specific directory

./quick_check.sh /path/to/your/project

Option 2: Python Tool (Comprehensive)

# Install Python 3.7+ first, then:

# Scan current directory

python3 npm_compromise_detector.py

# Scan specific directory with full options

python3 npm_compromise_detector.py /path/to/project –output report.txt –check-cache

# Quiet mode (only show critical findings)

python3 npm_compromise_detector.py –quiet

Alternative steps : 

  1. Freeze dependency resolution.
    • Lock to last-known-good yarn.lock, package-lock.json, or pnpm-lock.yaml.
    • Enforce overrides/pins to safe versions across workspaces. (Yarn v1 supports “resolutions”, npm supports “overrides”.)
    • If you rely on CI caching, purge it.
  2. Scan for the exact compromised versions and known IOC URLs using the detection tool below.
  3. Rebuild with pinned versions and redeploy.
    • If your app ever handled crypto flows, rotate secrets and audit on-chain transactions during the exposure window.
    • Add response headers (CSP/SRI) to limit future script tampering paths.
  4. Instrument your metrics.
    • Track SLA/SLO non-compliance by severity and MTTR from “team informed”—two metrics that keep you honest on both the macro and the micro. Community veterans consistently prioritize them for real-world signal over vanity counts. (Shoutouts to Matt Boddy on SLA/SLO + MTTR, James Berthoty and Chris Romeo on “time since informed,” and Katie Norton on escape rate and density.)
    • Avoid tallying “# of critical CVSS fixed” as your north star; it rewards volume, not risk reduction.

How the Malware Works (Step by Step)

1. Injects into the browser

The malicious code ships inside compromised npm packages. Once bundled into front-end builds, it hooks into browser primitives like fetch, XMLHttpRequest, and wallet APIs (window.ethereum, Solana, Tron, etc.). This guarantees visibility over both web traffic and crypto wallet activity.

2. Watches for sensitive data

With hooks in place, the malware continuously scans network responses and transaction payloads. It recognizes wallet formats for Ethereum, Bitcoin, Solana, Tron, Litecoin, and Bitcoin Cash. Anything that resembles a transfer request or crypto address is flagged.

3. Rewrites the targets

When a transaction is spotted, the payload silently replaces the real destination with an attacker-controlled address. Lookalike patterns are often used so the swapped address still resembles the original, lowering the chance of human detection.

4. Hijacks transactions before signing

The exploit manipulates transaction parameters—recipients, approvals, allowances—before the wallet signs them. Even if the UI appears correct, the signed message ultimately routes funds to the attacker.

5. Stays stealthy

To avoid detection, the malware suppresses obvious anomalies in the UI. Silent hooks keep running in the background, quietly intercepting and rewriting data without raising alerts.

What this says about DevSecOps & ASPM maturity

Attackers exploited human trust, registry trust, and transitive trust in one move. Tooling that fires off a million “Critical” alerts does little when minutes matter.

Teams that performed best in similar events share a pattern:

  • Ownership & Attribution: they can tell “who owns what, where” in seconds.
  • Contextual correlation: they tie code, containers, cloud, and runtime exposure in one view.
  • Remediation-aware exposure management: they route the right fix to the right team, first time—and track its completion against SLAs.

That’s exactly the operating model Phoenix Security customers use: precise team ownership, code-to-cloud mapping, and agent-assisted remediation on top of deduplicated, prioritized vuln sets. Case studies from fintech and retail show double-digit to near-total reductions in active container risk and massive productivity wins when you eliminate noise and direct action to owners.

Prevention checklist for npm teams

  • Adding malware scanning capabilities link to analysis post: https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised
  • Guardrail coverage beats heroics.
    • Unified allow/deny lists for registry domains; deny typosquats like npmjs.help/npnjs.com. (Multiple phishing waves used such domains in 2025.)   
    • Enforce publish-time 2FA and monitor for unusual publish metadata/diff sizes.
    • Mirror + quarantine: new versions wait in a staging registry until automated checks pass.
  • Code-to-cloud lineage + reachability.
    • Trace which libraries ship to browser bundles and are actually reachable at runtime; don’t waste hours on artifacts that never load. Phoenix customers cut active container vulns by 78–98% by slicing out inactive/stale images and duplicates.
  • Ownership-by-default.
    • Tie every app, service, and container to a team and a remediation workflow. Phoenix’s team inheritance and “who does what, where” mapping short-circuit the blame game and accelerate the handoff to the actual fixers.
  • Agent-assisted remediation, not agent-generated noise.
    • Phoenix AI Agents (Researcher, Analyzer, Remediator) operate after data is deduped and contextualized, so you get precise campaigns, not more triage.

FAQ / Updates

Was Node-only code execution impacted?

The injected payload targets browser contexts and leverages web APIs; multiple analyses indicate it does not execute in pure Node environments. Validate your bundlers, nevertheless, because many utilities cross the boundary. 

How can I prevent this and similar npm compromises?

In short, apply good hygiene, pinning the versions, and be aware of potential compromise. Full details

1. Registry Hygiene & Controls to prevent NPM compromise

  • Pin dependencies to exact versions and lockfiles (yarn.lock, package-lock.json, pnpm-lock.yaml).
  • Mirror npm packages internally and enforce a quarantine period before promoting new versions.
  • Deny or flag external calls to typosquat domains (npmjs.help, npnjs.com).

2. CI/CD Guardrails to prevent NPM compromise

  • Add pre-build checks to scan for known IOCs (domains, wallet addresses, regex signatures).
  • Require cryptographic signing for critical dependencies.
  • Enable SLSA or Sigstore verification for provenance tracking.

Which domains are indicators of compromise?

At minimum: npmjs.help (phish delivery) and websocket-api2.publicvm.com (credential exfiltration). Search code, build artifacts, and logs for hits. 

How do we know if we pulled a bad version?

Check your lockfiles and CI cache timestamps; use the script above; compare against your artifact store and SBOMs.

What should we measure post-incident?

SLA/SLO breach by severity and MTTR from “team informed,” plus escape rate and density to improve your SDLC.

Related sources

Get on top of your code and container vulnerabilities with Phoenix Security Actionable ASPM

attack graph phoenix security
ASPM

Organizations often face an overwhelming volume of security alerts, including false positives and duplicate vulnerabilities, which can distract from real threats. Traditional tools may overwhelm engineers with lengthy, misaligned lists that fail to reflect business objectives or the risk tolerance of product owners.

Phoenix Security offers a transformative solution through its Actionable Application Security Posture Management (ASPM), powered by AI-based Contextual Quantitative analysis. This innovative approach correlates runtime data with code analysis to deliver a single, prioritized list of vulnerabilities. This list is tailored to the specific needs of engineering teams and aligns with executive goals, reducing noise and focusing efforts on the most critical issues. Why do people talk about Phoenix

Automated Triage: Phoenix streamlines the triage process using a customizable 4D risk formula, ensuring critical vulnerabilities are addressed promptly by the right teams.

Contextual Deduplication: Utilizing canary token-based traceability, Phoenix accurately deduplicates and tracks vulnerabilities within application code and deployment environments, allowing teams to concentrate on genuine threats.

Actionable Threat Intelligence: Phoenix provides real-time insights into vulnerabilities’ exploitability, combining runtime threat intelligence with application security data for precise risk mitigation.

ASPm, CISA KEV, Remote Code Execution, Inforamtion Leak, Category, Impact, MITRE&ATTACK, AI Assessment, Phoenix CISA KEV, Threat intelligence

By leveraging Phoenix Security, you not only unravel the potential threats but also take a significant stride in vulnerability management, ensuring your application security remains up to date and focuses on the key vulnerabilities.

Get in control of your Application Security posture and Vulnerability management

Get on top of your code and container vulnerabilities with Phoenix Security Actionable ASPM powered by AI-based Reachability Analysis

attack graph phoenix security
ASPM

Organizations often face an overwhelming volume of security alerts, including false positives and duplicate vulnerabilities, which can distract from real threats. Traditional tools may overwhelm engineers with lengthy, misaligned lists that fail to reflect business objectives or the risk tolerance of product owners.

Phoenix Security offers a transformative solution through its Actionable Application Security Posture Management (ASPM), powered by AI-based Contextual Quantitative analysis. This innovative approach correlates runtime data with code analysis to deliver a single, prioritized list of vulnerabilities. This list is tailored to the specific needs of engineering teams and aligns with executive goals, reducing noise and focusing efforts on the most critical issues.

Why do people talk about Phoenix?

Automated Triage: Phoenix streamlines the triage process using a customizable 4D risk formula, ensuring critical vulnerabilities are addressed promptly by the right teams.

• Contextual Deduplication with reachability analysis: Utilizing canary token-based traceability for network reachability and static and dynamic runtime reachability, Phoenix accurately deduplicates and tracks vulnerabilities within application code and deployment environments, allowing teams to concentrate on genuine threats.

Actionable Threat Intelligence: Phoenix provides real-time insights into vulnerabilities’ exploitability, combining runtime threat intelligence with application security data for precise risk mitigation.

ASPm, CISA KEV, Remote Code Execution, Inforamtion Leak, Category, Impact, MITRE&ATTACK, AI Assessment, Phoenix CISA KEV, Threat intelligence

By leveraging Phoenix Security, you not only unravel the potential threats but also take a significant stride in vulnerability management, ensuring your application security remains up to date and focuses on the key vulnerabilities.

Get a demo with your data, test Reachability Analysis and ASPM

Francesco is an internationally renowned public speaker, with multiple interviews in high-profile publications (eg. Forbes), and an author of numerous books and articles, who utilises his platform to evangelize the importance of Cloud security and cutting-edge technologies on a global scale.

Discuss this blog with our community on Slack

Join our AppSec Phoenix community on Slack to discuss this blog and other news with our professional security team

From our Blog

A forged 2FA email led to malicious npm releases of chalk, debug, ansi-* and more. The payload targets browser crypto flows, rewriting wallet destinations. Use our repo scanner to spot the exact bad versions and IOC URLs, then shift to ownership-driven ASPM to cut MTTR and SLA breaches.
Francesco Cipollone
Phoenix Security introduces AI Agents designed to work with security teams, not replace them. From real-time threat intelligence to contextual remediation, the Researcher, Analyzer, and Remediator cut noise by 98%, reclaim engineering hours, and accelerate remediation 10x across DevSecOps pipelines.
Ksenia Mityushkina
Phoenix AI Agents transform vulnerability management by cutting through noise and delivering context-driven remediation. Designed for ASPM, DevSecOps, and code-to-cloud security, the Researcher, Analyzer, and Remediator work together to reduce false positives, accelerate fixes, and reclaim millions of engineering hours.
Francesco Cipollone
The team at Phoenix Security pleased to bring you another set of new application security (ASPM) features and improvements for vulnerability management across application and cloud security engines. This release builds on top of previous releases with key additions and progress across multiple areas of the platform. Application Security Posture Management (ASPM) Enhancements • New Weighted Asset Risk Formula – Refined risk aggregation for tailored vulnerability management. • Auto-Approval of Risk Exceptions – Accelerate mitigation by automating security approvals. • Enhanced Risk Explorer & Business Unit Insights – Monitor and analyze risk exposure by business units for better prioritization. Vulnerability & Asset Management • Link Findings to Existing Tickets – Seamless GitHub, ServiceNow, and Azure DevOps integration. • Multi-Finding Ticketing for ADO – Group multiple vulnerabilities in a single ticket for better workflow management. • Filter by Business Unit, CWE, Ownership, and Deployment Environment – Target vulnerabilities with precision using advanced filtering. Cyber Threat Intelligence & Security Enhancements • Cyber Threat Intelligence Premium – Access 128,000+ exploits for better exploitability and fixability metrics. • SBOM, Container SBOM & Open Source Artifact Analysis – Conduct deep security analysis with reachability insights. • Enhanced Lacework Container Management – Fetch and analyze running container details for better security reporting. • REST API Enhancements – Use asset tags for automated deployments and streamline security processes. Other Key Updates • CVE & CWE Columns Added – Compare vulnerabilities more effectively. • Custom Status Management for Findings – Personalize security workflows with custom status configurations. • Impact & Risk Explorer Side Panel – Gain heatmap-based insights into vulnerability distribution and team risk impact. 🚀 Stay ahead of vulnerabilities, optimize risk assessment, and enhance security efficiency with Phoenix Security’s latest features! 🚀
Rowan Scott
The team at Phoenix Security pleased to bring you another set of new application security (ASPM) features and improvements for vulnerability management across application and cloud security engines. This release builds on top of previous releases with key additions and progress across multiple areas of the platform. Application Security Posture Management (ASPM) Enhancements • New Weighted Asset Risk Formula – Refined risk aggregation for tailored vulnerability management. • Auto-Approval of Risk Exceptions – Accelerate mitigation by automating security approvals. • Enhanced Risk Explorer & Business Unit Insights – Monitor and analyze risk exposure by business units for better prioritization. Vulnerability & Asset Management • Link Findings to Existing Tickets – Seamless GitHub, ServiceNow, and Azure DevOps integration. • Multi-Finding Ticketing for ADO – Group multiple vulnerabilities in a single ticket for better workflow management. • Filter by Business Unit, CWE, Ownership, and Deployment Environment – Target vulnerabilities with precision using advanced filtering. Cyber Threat Intelligence & Security Enhancements • Cyber Threat Intelligence Premium – Access 128,000+ exploits for better exploitability and fixability metrics. • SBOM, Container SBOM & Open Source Artifact Analysis – Conduct deep security analysis with reachability insights. • Enhanced Lacework Container Management – Fetch and analyze running container details for better security reporting. • REST API Enhancements – Use asset tags for automated deployments and streamline security processes. Other Key Updates • CVE & CWE Columns Added – Compare vulnerabilities more effectively. • Custom Status Management for Findings – Personalize security workflows with custom status configurations. • Impact & Risk Explorer Side Panel – Gain heatmap-based insights into vulnerability distribution and team risk impact. 🚀 Stay ahead of vulnerabilities, optimize risk assessment, and enhance security efficiency with Phoenix Security’s latest features! 🚀
Rowan Scott
Derek

Derek Fisher

Head of product security at a global fintech

Derek Fisher – Head of product security at a global fintech. Speaker, instructor, and author in application security.

Derek is an award winning author of a children’s book series in cybersecurity as well as the author of “The Application Security Handbook.” He is a university instructor at Temple University where he teaches software development security to undergraduate and graduate students. He is a speaker on topics in the cybersecurity space and has led teams, large and small, at organizations in the healthcare and financial industries. He has built and matured information security teams as well as implemented organizational information security strategies to reduce the organizations risk.

Derek got his start in the hardware engineering space where he learned about designing circuits and building assemblies for commercial and military applications. He later pursued a computer science degree in order to advance a career in software development. This is where Derek was introduced to cybersecurity and soon caught the bug. He found a mentor to help him grow in cybersecurity and then pursued a graduate degree in the subject.

Since then Derek has worked in the product security space as an architect and leader. He has led teams to deliver more secure software in organizations from multiple industries. His focus has been to raise the security awareness of the engineering organization while maintaining a practice of secure code development, delivery, and operations.

In his role, Jeevan handles a range of tasks, from architecting security solutions to collaborating with Engineering Leadership to address security vulnerabilities at scale and embed security into the fabric of the organization.

Jeevan Singh

Jeevan Singh

Founder of Manicode Security

Jeevan Singh is the Director of Security Engineering at Rippling, with a background spanning various Engineering and Security leadership roles over the course of his career. He’s dedicated to the integration of security practices into software development, working to create a security-aware culture within organizations and imparting security best practices to the team.
In his role, Jeevan handles a range of tasks, from architecting security solutions to collaborating with Engineering Leadership to address security vulnerabilities at scale and embed security into the fabric of the organization.

James

James Berthoty

Founder of Latio Tech

James Berthoty has over ten years of experience across product and security domains. He founded Latio Tech to help companies find the right security tools for their needs without vendor bias.

christophe

Christophe Parisel

Senior Cloud Security Architect

Senior Cloud Security Architect

Chris

Chris Romeo

Co-Founder
Security Journey

Chris Romeo is a leading voice and thinker in application security, threat modeling, and security champions and the CEO of Devici and General Partner at Kerr Ventures. Chris hosts the award-winning “Application Security Podcast,” “The Security Table,” and “The Threat Modeling Podcast” and is a highly rated industry speaker and trainer, featured at the RSA Conference, the AppSec Village @ DefCon, OWASP Global AppSec, ISC2 Security Congress, InfoSec World and All Day DevOps. Chris founded Security Journey, a security education company, leading to an exit in 2022. Chris was the Chief Security Advocate at Cisco, spreading security knowledge through education and champion programs. Chris has twenty-six years of security experience, holding positions across the gamut, including application security, security engineering, incident response, and various Executive roles. Chris holds the CISSP and CSSLP certifications.

jim

Jim Manico

Founder of Manicode Security

Jim Manico is the founder of Manicode Security, where he trains software developers on secure coding and security engineering. Jim is also the founder of Brakeman Security, Inc. and an investor/advisor for Signal Sciences. He is the author of Iron-Clad Java: Building Secure Web Applications (McGraw-Hill), a frequent speaker on secure software practices, and a member of the JavaOne Rockstar speaker community. Jim is also a volunteer for and former board member of the OWASP foundation.

Join our Mailing list!

Get all the latest news, exclusive deals, and feature updates.

The IKIGAI concept
x  Powerful Protection for WordPress, from Shield Security
This Site Is Protected By
ShieldPRO