Miasma is a Node.js-focused malware family associated with software supply-chain attacks against developer ecosystems, especially npm. It has been observed both as a self-propagating worm targeting package registries and developer environments, and as a modular remote-access payload delivered through compromised trusted packages. Recent activity linked to the family includes trojanized releases in the AsyncAPI ecosystem and broader campaigns derived from or related to Mini Shai-Hulud activity. Researchers have also noted that some later malware samples reused Miasma branding as a likely false flag, so not every sample carrying the name is conclusively attributable to the same operators.
Miasma is notable for executing outside traditional npm lifecycle hooks. In some campaigns it abused native build metadata to trigger code execution during installation, while in others malicious JavaScript embedded in legitimate source files executed when an affected module was imported or required. Observed delivery chains include multi-stage loaders that spawn detached Node.js processes, retrieve encrypted follow-on payloads from decentralized hosting, decrypt large modular runtimes, and continue execution in the background while the parent application proceeds normally.
The malware supports persistent remote access and resilient command-and-control. Documented capabilities include encrypted beaconing, remote shell or command execution, file operations, payload replacement or updating, and multiple fallback communication paths using decentralized technologies such as IPFS, Nostr, Ethereum-based configuration storage, BitTorrent DHT, libp2p, and local peer discovery. Persistence has been observed across Linux, Windows, and macOS through user-level mechanisms such as systemd user services, shell startup modification, and Windows Run-key autostart.
Credential and secret theft are central to the family’s design. Reported targeting includes cloud credentials, package-manager and source-control tokens, SSH material, browser data, CI/CD secrets, password stores, cryptocurrency wallets, and developer-tool artifacts. Some builds also contained propagation modules capable of abusing stolen tokens to spread to additional package registries and repositories. Miasma and related variants have additionally targeted AI coding-assistant configuration and rules files, injecting hooks or instructions that cause malicious code to run automatically during developer AI sessions and potentially poison downstream generated code.
The malware primarily endangers developer workstations, CI/CD runners, build systems, documentation pipelines, and other environments that resolve and execute compromised packages. Activity associated with Miasma has been linked by multiple researchers to TeamPCP and derivative Mini Shai-Hulud campaigns, although attribution is not uniform across all incidents and some AsyncAPI-related samples were explicitly described as only Miasma-associated rather than definitively tied to prior TeamPCP operations.
Mallory pivots from this family to the IOCs, detections, and named campaigns that touch your stack, and pages you when something new lands.
4 CVEs Mallory has correlated with this family across public research and vendor advisories. Each row links to the full Mallory page for that vulnerability.
The four CVEs associated with this campaign are CVE-2026-33634, CVE-2026-48027, CVE-2026-45321, and CVE-2025-55182. | Miasma was a variant of Mini Shai-Hulud that propagated across those same open-source registries while harvesting credentials and poisoning configuration files.
The four CVEs associated with this campaign are CVE-2026-33634, CVE-2026-48027, CVE-2026-45321, and CVE-2025-55182. | Miasma was a variant of Mini Shai-Hulud that propagated across those same open-source registries while harvesting credentials and poisoning configuration files.
The four CVEs associated with this campaign are CVE-2026-33634, CVE-2026-48027, CVE-2026-45321, and CVE-2025-55182. | Miasma was a variant of Mini Shai-Hulud that propagated across those same open-source registries while harvesting credentials and poisoning configuration files.
The four CVEs associated with this campaign are CVE-2026-33634, CVE-2026-48027, CVE-2026-45321, and CVE-2025-55182. | Miasma was a variant of Mini Shai-Hulud that propagated across those same open-source registries while harvesting credentials and poisoning configuration files.
5 distinct threat actors attributed by public researchers. Open in Mallory to see the full evidence chain and overlapping campaigns.
The financially motivated group TeamPCP was linked to some of the most significant activity, including the self-propagating “Mini Shai-Hulud” worm, which continued to spawn derivative campaigns, dubbed Miasma and Hades, after its source code was published to GitHub in May.
The GitHub fingerprint the attackers left behind – a repository description reading “Alright Lets See If This Works” turned up on over 320 infected repositories before researchers began pulling the thread. That string is not something random. In the Shai-Hulud / Miasma family of supply chain worms, the description stamped onto attacker-created GitHub dead-drop repos has functioned as a campaign signature since the original wave hit in September 2025.
The GitHub fingerprint the attackers left behind – a repository description reading “Alright Lets See If This Works” turned up on over 320 infected repositories before researchers began pulling the thread. That string is not something random. In the Shai-Hulud / Miasma family of supply chain worms, the description stamped onto attacker-created GitHub dead-drop repos has functioned as a campaign signature since the original wave hit in September 2025.
An infrastructure provider's networks have been breached and they were dealing with the Miasma worm. That worm, as it turns out, is pretty hard to catch and delete because it is self-spreading through IDE configuration settings and through AI assisted environments.
An infrastructure provider's networks have been breached and they were dealing with the Miasma worm. That worm, as it turns out, is pretty hard to catch and delete because it is self-spreading through IDE configuration settings and through AI assisted environments.
25 distinct techniques documented for this family, organized by ATT&CK tactic.
propagates automatically by forging provenance attestations so reinfected packages appear legitimate.
A self-spreading npm worm dubbed Miasma compromised 57 npm packages across 286+ malicious versions.
The report warns that these campaigns exploit “transitive trust” in software supply chains, turning maintainer accounts, CI/CD tokens and cloud credentials into high-value targets, with effects that can cascade well beyond the organisation initially compromised.
For each one it finds, it injects a hook command which helps the malware stay persistent... every time the developer starts an AI coding session, the malware runs silently and automatically.
the malware ships a ~157-byte binding.gyp file containing a command-substitution action ("<!(node index.js > /dev/null 2>&1 && echo stub.c)"). This triggers arbitrary code execution during npm install without declaring a lifecycle script.
The injected JavaScript did not depend on common npm lifecycle scripts such as postinstall. Instead, it ran when an affected module was imported, allowing the malware to remain inactive after installation and execute later during a build, application run, documentation task, or CI/CD job.
propagates automatically by forging provenance attestations so reinfected packages appear legitimate.
The attack began with a vulnerable GitHub Actions configuration that allowed untrusted pull request content to interact with a privileged workflow context. This gave the attacker a path to obtain or abuse an AsyncAPI automation identity and make unauthorized repository changes.
propagates automatically by forging provenance attestations so reinfected packages appear legitimate.
propagates automatically by forging provenance attestations so reinfected packages appear legitimate.
The first-stage code launched a detached Node.js process and retrieved an encrypted second-stage payload from IPFS.
The injected JavaScript did not depend on common npm lifecycle scripts such as postinstall. Instead, it ran when an affected module was imported, allowing the malware to remain inactive after installation and execute later during a build, application run, documentation task, or CI/CD job.
Miasma also used an Ethereum contract as a fallback source for command-and-control configuration, including alternative endpoints, relay information, and bootstrap data.
The first-stage code launched a detached Node.js process and downloaded an encrypted second-stage payload from IPFS.
151 indicators attributed across vendor reports, sandbox runs, and researcher write-ups. Full values are available in Mallory.
IPs, domains, and DNS infrastructure linked to this family.
File hashes (MD5, SHA-1, SHA-256) from samples and reports.
Other indicator types observed in public reporting.
84 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A derivative campaign spawned from Mini Shai-Hulud following publication of the worm's source code.
A Miasma-associated Node.js payload was distributed via compromised AsyncAPI npm packages in a supply-chain attack. It executes when an affected module is imported, launches a detached Node.js process, downloads an encrypted second-stage payload from IPFS, and can maintain access, run remote commands, handle files, update itself, and communicate with attacker-controlled infrastructure. It also used an Ethereum contract as a fallback source for C2 configuration.
A variant associated with Mini Shai-Hulud that scans for AI tool configuration files and injects malicious persistence hooks or instructions into them.
A Node.js malware payload delivered via compromised AsyncAPI npm packages. It launches a detached Node.js process, retrieves an encrypted second-stage payload from IPFS, establishes persistence, supports remote command execution, file operations, payload updates, and command-and-control communications. In this incident it primarily functioned as a remote-access tool targeting developer and CI/CD environments.
Match every observed IP, domain, and hash against your live telemetry.
Named campaigns wielding this family, with evidence pinned to each claim.
CVEs this family uses for access and lateral movement.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Every documented technique, ranked by evidence weight.
Reddit, Mastodon, and CTI community discussion around this family.