IronWorm and Miasma Worm Variants Execute Dual npm Supply Chain Attacks

npm ecosystem 107+ packages poisoned IRONWORM Rust stealer + eBPF rootkit src: asteroiddao MIASMA WORM Phantom Gyp + Bun runtime 57 pkgs / 286 versions GitHub Orgs x9 commit as "claude" GH Actions hijack eBPF Rootkit hides processes kernel lockdown = bypass 86 env vars stolen AWS / AI / crypto wallet files Phantom Gyp binding.gyp bypass evades hook monitors AI IDE backdoors Cursor / Claude / Gemini auto-exec on open 236 repos staged liuende501 acct forged SLSA provenance DUAL NPM SUPPLY CHAIN ATTACK — IRONWORM + MIASMA — 2026
107+
Packages Compromised
86
Environment Variables Targeted
236
Repositories Staged for Exfiltration
72 sec
Initial Miasma Infection Window
TL;DR
  • What: Two concurrent npm supply-chain attacks — IronWorm (Rust/eBPF stealer, via compromised asteroiddao account) and a new Miasma worm variant (Phantom Gyp bypass + Bun runtime) — poisoned 107+ packages and self-propagated through stolen credentials.
  • Impact: 86 environment variables exfiltrated per host (AWS, AI API keys, crypto wallets); 9 GitHub orgs compromised; 236 repos staged for exfiltration; persistent backdoors injected into AI coding-assistant configs (Cursor, Claude, Gemini).
  • Fix / mitigation: Rotate all credentials immediately; run npm config set ignore-scripts true; pin packages with package-lock.json integrity hashes; enable kernel lockdown on Linux to defeat the eBPF rootkit; audit GitHub Actions workflows for commits authored by claude@users.noreply.github.com.
  • Who's at risk: Any developer or CI/CD pipeline that installed packages from the asteroiddao npm account or the RedHatInsights GitHub org (affected namespaces include @redhat-cloud-services), or uses AI coding assistants like Cursor, GitHub Copilot, or Claude.

The npm ecosystem has been hit by two concurrent supply chain attacks affecting over 100 packages combined. IronWorm, a Rust-based information stealer identified by JFrog, and a new variant of the Miasma worm analyzed by Endor Labs and StepSecurity represent sophisticated threats that self-propagate through stolen credentials and poisoned package versions. Both campaigns target developer credentials, cloud infrastructure secrets, and CI/CD pipelines with advanced evasion techniques including kernel-level rootkits and novel execution vectors.

IronWorm: Rust-Based Stealer with eBPF Rootkit

IronWorm originated from a compromised npm account named 'asteroiddao' that published trojanized package versions containing a Rust ELF binary executed via preinstall hooks. The malware scrapes 86 environment variables and targets credential files for OpenAI Codex, Anthropic Claude, Google Gemini, Cursor, AWS, Docker, Kubernetes, npm, vault configurations, and Exodus cryptocurrency wallet files. JFrog researchers noted an unusual detail: the stealer includes logic to skip the threat actor's own wallet, which remains empty with no recorded transactions.

The malware's propagation mechanism mirrors the infamous Shai-Hulud worm by using stolen credentials to push malicious commits across GitHub repositories. These commits appear under the author name 'claude' with the email 'claude@users.noreply.github.com', deliberately mimicking Anthropic's AI chatbot to avoid suspicion. The attack chain compromised nine GitHub organizations, with the malware accessing repositories through stolen credentials from ocrybit, a member of the asteroid-dao organization and related Arweave organizations.

Critical CI/CD Exploitation

IronWorm replaces GitHub Actions workflows with versions that harvest secrets, write them to innocuous-looking files, and upload them as build artifacts—eliminating the need for external C2 infrastructure. In CI environments, it abuses npm's Trusted Publishing flow to obtain short-lived tokens for pushing poisoned package versions.

The malware deploys an eBPF payload functioning as a kernel-level rootkit to hide processes and prevent analysis. However, this evasion technique has a critical weakness: on systems with kernel lockdown enabled, the process-hiding mechanism fails and the malicious processes become visible. This represents a significant detection opportunity for organizations with hardened security configurations.

Miasma Worm Returns with 'Phantom Gyp' Technique

The new Miasma variant compromised 57 npm packages across 286 malicious versions, following an earlier wave that infected 32 packages under the @redhat-cloud-services namespace within 72 seconds. Affected packages include ai-sdk-ollama, autotel, awaitly, effect-analyzer, eslint-plugin-awaitly, executable-stories-cypress, http-uploader-dev, mountly, node-env-resolver, and node-env-resolver-aws. Red Hat confirmed the attack stemmed from a compromised GitHub account used to push unauthorized commits to repositories in the RedHatInsights GitHub organization.

StepSecurity researcher Sai Likhith identified a novel execution technique called 'Phantom Gyp' that bypasses typical security monitoring. Instead of using preinstall or postinstall lifecycle scripts that security tools routinely watch, the attacker exploits a 157-byte binding.gyp file to trigger code execution during npm install. This technique evades most install-script security checks, representing a significant evolution in package-based attack vectors.

The attack chain downloads and installs the Bun JavaScript runtime to execute a comprehensive credential harvester targeting AWS, Google Cloud, Microsoft Azure, HashiCorp Vault, Docker, Kubernetes, GitHub Actions, npm, RubyGems, PyPI, SSH, password managers, and AI assistants. Stolen data was exfiltrated to a GitHub account 'liuende501' that staged 236 repositories before either being removed by GitHub or deleted by the threat actor. The account is now inaccessible.

AI Coding Assistant Targeting

Persistent IDE Backdoors

The most concerning capability in the Miasma variant is its targeting of AI coding assistant configurations. The malware injects persistent backdoor files into project repositories that execute automatically whenever a developer opens the project in their AI-assisted IDE, creating a self-perpetuating infection mechanism.

Microsoft's analysis confirmed the payload operates across Linux, macOS, and Windows by dynamically downloading the appropriate Bun runtime for each platform, though Linux CI/CD runners appear to be the primary target. On developer systems, the malware steals SSH keys, CLI credentials, browser data, and wallet information. In CI/CD environments, it scrapes GitHub Actions runner memory for secrets, escalates privileges using passwordless sudo, and republishes poisoned packages with forged SLSA provenance to enable downstream propagation.

Immediate Mitigation Actions

Detection and Response Priorities

Organizations should immediately audit dependencies for any packages associated with the asteroiddao npm account and the compromised RedHatInsights GitHub organization. Security teams must expand monitoring beyond traditional preinstall and postinstall hooks to include binding.gyp file analysis. The targeting of AI coding assistants represents a paradigm shift in supply chain attacks, requiring new detection strategies focused on IDE configuration files and AI service credential stores. Given the self-propagating nature of both campaigns and their ability to forge SLSA provenance, teams cannot rely solely on package metadata for trust decisions.

The simultaneous deployment of IronWorm and the new Miasma variant demonstrates increasing sophistication in npm supply chain attacks. The combination of kernel-level rootkits, novel execution vectors, CI/CD exploitation, and AI assistant targeting indicates threat actors are adapting to modern development workflows. Organizations must implement defense-in-depth strategies that assume compromise and focus on limiting blast radius through credential rotation, least-privilege access, and runtime behavioral monitoring rather than relying exclusively on static package scanning.

Questions about your exposure?

RedEye Security provides assessments for organizations that need to understand their real risk.

Talk to us