On June 4, 2026, JFrog and Ox Security disclosed IronWorm — a supply-chain attack that infected 36 npm packages with a Rust-based infostealer. The malware runs a Rust ELF binary via npm's preinstall hook, hides behind an eBPF kernel rootkit, and communicates with its operator over the Tor network, making traditional network-level detection unreliable.
IronWorm targets 86 environment variables and 20 credential files containing OpenAI, AWS, Anthropic API keys, npm tokens, vault configuration, SSH private keys, and Exodus cryptocurrency wallet files. Once it captures npm Trusted Publishing credentials, it self-propagates by publishing trojanised versions of packages owned by the victim — infecting additional developer machines and CI environments at scale.
The attack shares commit naming patterns with the earlier TeamPCP/Shai-Hulud campaign, suggesting a possible operational connection or code lineage. Ox Security reports the attack was detected early and stopped before reaching more popular package names.
◈ Table of Contents
The Attack: What Happened
PHASE 01| Field | Detail |
|---|---|
| Malware name | IronWorm |
| Packages infected | 36 npm packages |
| Origin account | asteroiddao (compromised npm account) |
| Commit author | "claude" (with timestamps backdated up to 13 years) |
| Delivery mechanism | Rust ELF binary via npm preinstall hook |
| Disclosed | June 4, 2026 (JFrog and Ox Security) |
| Containment | Detected early — stopped before spreading to major packages |
Malware Capabilities
PHASE 02Rust Implementation
Written in Rust for performance and low-level system access. Compiled as a standalone ELF binary, requiring no runtime dependencies and resisting many signature-based detection approaches.
eBPF Kernel Rootkit
IronWorm hides behind an eBPF-based kernel rootkit. eBPF programs run at kernel level, allowing the malware to intercept system calls, hide network connections, and evade process-level monitoring tools.
Tor C2 Channel
Command-and-control traffic routes over the Tor network, preventing C2 IP blocking and making network-layer attribution difficult. Standard network monitoring for known C2 IPs is ineffective against this architecture.
Credential Targets
PHASE 03IronWorm specifically targets the credentials most valuable to a developer or CI environment operator. The choice of targets indicates a threat actor focused on AI infrastructure, cloud accounts, and further supply-chain propagation.
| Category | Specific Targets | Impact |
|---|---|---|
| AI Provider Keys | OpenAI API keys, Anthropic API keys | Financial theft (API cost billing), model abuse, data exfiltration |
| Cloud Credentials | AWS access keys and secrets, vault config files | Full cloud infrastructure takeover, data access |
| Developer Secrets | npm tokens (incl. Trusted Publishing), SSH private keys | Package hijacking for further supply-chain propagation |
| Crypto Wallets | Exodus cryptocurrency wallet files | Direct financial theft |
| Environment Variables | 86 env vars scanned per environment | Broad sweep for any secrets stored in .env files or shell config |
| Credential Files | 20 specific credential file paths | Structured search for known secret storage locations |
Self-Propagation Mechanism
PHASE 04- 1Developer installs an infected package — npm's preinstall hook executes the Rust ELF binary silently before the package code runs.
- 2IronWorm harvests npm Trusted Publishing tokens — these tokens allow publishing new package versions to npm without requiring a password, making them especially valuable.
- 3Malware publishes trojanised versions of victim-owned packages — IronWorm uses the stolen tokens to publish new versions of packages the compromised developer maintains, embedding its own payload.
- 4Downstream consumers are infected — developers and CI/CD pipelines that depend on those packages pull the trojanised version on next install, restarting the cycle.
npm Trusted Publishing tokens are particularly high-value targets. Unlike traditional passwords or 2FA, these tokens can be used non-interactively to publish packages — making them ideal for automated propagation. Any developer with Trusted Publishing enabled who installed an infected package should consider their publishing tokens compromised and rotate immediately.
GitHub Actions Exfiltration Technique
PHASE 05The GitHub Actions artifact exfil technique entirely bypasses egress network monitoring. Defenders should audit Actions workflows for unexpected artifact uploads to names that mimic linting or formatting tools, and restrict who can download artifacts from CI workflows in security-sensitive repositories.
TeamPCP Connection
PHASE 06JFrog researchers observed identical commit names between IronWorm and the earlier Shai-Hulud campaign attributed to TeamPCP. While researchers could not confirm a definitive technical link, the overlap in commit naming patterns is notable given Shai-Hulud's leaked source code was published on GitHub after the original campaign — opening the possibility that IronWorm is either a direct evolution of TeamPCP's tooling or a copycat using the same commit naming conventions.
| Campaign | Packages | Exfil Method | Attribution |
|---|---|---|---|
| Shai-Hulud (TeamPCP) | 600+ npm packages | Direct C2 + GitHub | TeamPCP (confirmed) |
| IronWorm | 36 npm packages | Tor C2 + GitHub Actions artifact | Unknown (shared commit names) |
Detection & Response
PHASE 07- 1Check Ox Security's affected package list — if any appear in your
package.jsonorpackage-lock.jsonat the infected version, treat your environment as compromised. - 2Rotate all credentials immediately — npm tokens, AWS access keys, OpenAI/Anthropic API keys, SSH keys, and any secrets stored in environment variables or
.envfiles. - 3Check for unexpected npm publishes — review your npm organisation's publish history for versions you did not authorise. Check
npm info <package> --json | jq '.versions'for unexpected version entries. - 4Enable 2FA on all npm accounts — use TOTP or hardware security key; do not rely solely on Trusted Publishing for CI publishing workflows.
- 5Audit eBPF usage on compromised hosts — run
bpftool prog listand compare against known-good baseline. Unexpected eBPF programs may indicate IronWorm's rootkit. - 6Inspect GitHub Actions artifacts — review recent build artifact names for files mimicking linting or formatting output containing unexpected data volumes.
Sources & References
PHASE 08Scan for Malicious npm Package Exposure — If your development or CI environment may have installed affected IronWorm packages, use CyberHawk's IOC Scanner to cross-reference known supply-chain IOCs and check your environment for exposure indicators.
◈ Stay Connected
Follow CyberHawk Threat Intel for threat intelligence, deployment guides and hands-on SOC tooling content.
"They can't exploit you if you are the Exploit."