← Back to feed

IronWorm: Rust-Built npm Supply Chain Worm with eBPF Rootkit, Tor C2, and AI Credential Harvesting Across 37 Packages

Date: 2026-06-23
Tags: supply-chain, malicious-tool

Executive Summary

A new supply-chain attack has infected 36-37 packages on the Node Package Manager (npm) index with infostealer malware called IronWorm. IronWorm is written in Rust, hides behind an eBPF kernel rootkit, and communicates with the operator over the Tor network. The malware targets 86 environment variables and 20 credential files that may contain OpenAI, AWS, Anthropic, and npm credentials, vault configuration files, SSH keys, and Exodus cryptocurrency wallet files.

Campaign Summary

FieldDetail
Campaign / MalwareIronWorm
AttributionUnknown; possibly TeamPCP evolution (confidence: medium)
TargetSoftware developers; crypto/Web3 ecosystem focus
VectorMalicious npm package installation via preinstall hooks
Statusactive
First Observed2026-06-03

Detailed Findings

The attack started from a compromised account named 'asteroiddao,' which published package versions containing the Rust ELF binary executed via 'preinstall,' pushing malicious commits into repositories. The commit author appears as "claude," and the timestamps point to several years ago, up to 13 years in some cases, even though they were pushed in the past few days. IronWorm ships as a 976 KB Rust ELF binary executed via a preinstall hook, packs a custom-modified UPX stub to defeat signature-based unpackers, encrypts every internal string with a unique per-call-site key, and carries an embedded eBPF kernel-level rootkit to hide its own processes, sockets, and anti-debugging tripwires from defenders. The Rust-based malware self-propagates by using stolen credentials for publishing on npm; this includes secrets associated with npm's Trusted Publishing workflow. Once it compromises a developer or CI environment, it can publish trojanized versions of packages owned by the victim, which then infect additional developers and CI systems. The implant sweeps 86 environment variables and over 20 credential file paths covering AWS, GCP, Azure, Vault, Kubernetes, npm, Docker, GitHub, and the entire 2026 generation of AI provider keys (Anthropic, OpenAI, Gemini, Cohere, Mistral, Groq, Perplexity, xAI). Despite the affected packages garnering a combined total of 32,177 monthly downloads, the threat was mitigated before the infection could spread to more popular packages.

MITRE ATT&CK Mapping

TechniqueIDContext
Supply Chain CompromiseT1195.001Compromised npm packages with malicious preinstall hooks
Credential DumpingT1110.001Extraction of 86 environment variables and 20+ credential files from developer machines
Persistence via RootkitT1547.014eBPF kernel rootkit hides malware processes and network activity from detection
Command and Control via TorT1071.001Tor-based C2 communication channel

IOCs

Domains

_JFrog Security provided detailed IOC list; packages deprecated and removed within 24 hours of publication. No CVE assigned during active exploitation._

Full URL Paths

_JFrog Security provided detailed IOC list; packages deprecated and removed within 24 hours of publication. No CVE assigned during active exploitation._

Splunk Format

_No IOCs available for Splunk query_

Package Indicators

{'name': 'asteroiddao compromise - 36-37 npm packages', 'registry': 'npm', 'note': "Specific affected package list available in JFrog and OX Security reports; packages included deposits from 'asteroiddao' account with malicious preinstall hooks"}

Affected Platforms

npm registry
JavaScript/Node.js development environments
CI/CD pipelines

Detection Recommendations

Monitor npm preinstall hooks and postinstall scripts for binary execution; audit GitHub commit metadata for backdated changes and suspicious 'claude' author names; scan for eBPF rootkit signatures and Tor egress traffic; review environment variable exports and credential file access patterns in CI/CD logs; enable MFA and token rotation for npm publishing; implement supply chain scanning that detects Rust binaries in preinstall hooks and custom UPX stubs.

References