JFrog — IronWorm: Rust-Based npm Worm with eBPF Rootkit Targets AI/Dev Tooling
AI relevance: IronWorm specifically targets credential stores used by AI developer tools — including OpenAI Codex, Anthropic Claude, Google Gemini, and Cursor — making it a direct threat to the identity surfaces of anyone running AI coding agents or LLM proxy tooling.
What happened
- JFrog Security published a full teardown of IronWorm, a self-replicating npm supply-chain worm written in Rust, discovered on the compromised
asteroiddaoaccount. - The malware targets 86 environment variables and credential files associated with OpenAI Codex, Anthropic Claude, Google Gemini, Cursor, AWS, Docker, Kubernetes, and npm.
- A 976 KB Linux ELF binary hid in the
tools/directory of legitimate-looking packages, executed via apreinstallscript that runs before npm resolves dependencies. - The binary is a Rust release build with an async runtime — packed with a modified UPX stub (magic value overwritten to defeat standard
upx -ddetection) and per-call-site string encryption. - After stealing credentials, the worm propagates by pushing malicious commits across nine GitHub organizations, signing them as
claude@users.noreply.github.comto mimic Anthropic's chatbot. - In CI environments, it abuses npm's Trusted Publishing flow to obtain short-lived tokens for pushing poisoned versions back to the registry — closing the self-replication loop.
- An eBPF kernel rootkit hides processes and sockets from analysis; on systems with kernel lockdown enabled, the hiding fails but the harvester still executes.
- Malicious versions were deprecated within a day, and most commits silently removed — a sign of active cleanup by the operator.
Why it matters
- IronWorm is one of the most sophisticated supply-chain worms targeting AI developer credential surfaces — specifically hunting Codex, Claude, and Gemini auth tokens.
- The Rust + eBPF rootkit combination is unprecedented in npm malware, signaling well-resourced attackers.
- Self-propagation via stolen GitHub PATs and npm Trusted Publishing means a single infected developer can poison an entire organization's dependency chain.
- The
claude@users.noreply.github.comsigning demonstrates deliberate deception aimed at AI-security incident responders. - IronWorm and Miasma are distinct but coordinated campaigns hitting the npm ecosystem simultaneously — suggesting a shared threat actor or at least shared tooling.
What to do
- Audit all npm packages installed from the
asteroiddaoaccount, particularlyweavedb-sdkversions published in the attack window. - Rotate all AI platform credentials (Codex, Anthropic, Gemini, Cursor) if you have installed packages from compromised accounts.
- Block
preinstallandpostinstallscripts via--ignore-scriptsor npm config until you've audited the package. - Check for eBPF rootkit indicators — unusual kernel module loads or hidden processes on developer machines.
- Review GitHub commit history for unsigned commits authored as
claude@users.noreply.github.comacross your organization's repos. - Monitor npm Trusted Publishing events for unexpected package publications from your CI pipelines.