Miasma is a JavaScript-based modular malware family associated with software supply-chain compromises targeting developer ecosystems and CI/CD environments. It has been observed delivered through trojanized open-source packages and import-time loaders that execute when affected modules are required or imported, rather than relying solely on installation hooks. Reported Miasma builds establish persistent remote access, support encrypted command-and-control, and use multiple fallback communications channels including decentralized mechanisms such as IPFS, Nostr, blockchain-based records, BitTorrent DHT, libp2p, and local peer discovery. The malware has been described both as a backdoor or remote-access framework and, in earlier reporting, as a self-propagating variant related to Mini Shai-Hulud that spread across package registries such as npm and PyPI while harvesting credentials and poisoning configuration files.
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 compromised packages deploy an obfuscated first-stage payload that downloads an encrypted second-stage payload, identified as Miasma, from IPFS.
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.
27 distinct techniques documented for this family, organized by ATT&CK tactic.
Using the stolen PAT, the attacker pushed a malicious commit directly to the `next` branch... This triggered the release workflow, which published the initial three compromised packages to npm... Two additional malicious versions of @asyncapi/specs were published.
The first stage is executed on package import. It spawns a detached child process that downloads the next stage from IPFS.
The third stage... establishes persistence via systemd user services on Linux... The payload uses miasma-monitor.service within the persistence code.
The third stage... establishes persistence via systemd user services on Linux... The payload uses miasma-monitor.service within the persistence code.
At 05:08 UTC, the attacker opened PR #2155 containing a markdown file with obfuscated JavaScript hidden after approximately 1,000 bytes of whitespace.
The child downloaded sync.js from IPFS and wrote it to an OS-specific “NodeJS” masquerade directory.
spawn('node', [payloadPath], { detached: true, stdio: 'ignore', windowsHide: true, }).unref();
the malware performs a local check for Russia, and if there’s a match, it terminates its process.
Credential files targeted from disk include .npmrc, .aws/credentials, kubeconfig, id_rsa/id_ed25519, .vault-token, .netrc, .docker/config.json, and google_credentials.json.
Credential files targeted from disk include .npmrc (npm tokens), .aws/credentials (AWS keys), kubeconfig (Kubernetes API), id_rsa/id_ed25519 (SSH keys)...
The payload includes credential theft capabilities targeting browser saved passwords and cookies (Chrome, Brave, Firefox, Edge)... macOS Keychain... and cryptocurrency wallets.
It establishes persistence via systemd user services on Linux and communicates with command and control infrastructure over multiple channels including HTTP, Nostr relays, Ethereum smart contracts, and a libp2p mesh network.
The framework bundles 744 modules and is built as a command framework that supports six independent command-and-control (C2) communication channels using HTTP, Nostr relay, IPFS, BitTorrent DHT, libp2p GossipSub P2P mesh, and an Ethereum smart contract.
150 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.
79 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
Mentioned as a false-flag reference embedded in the malware and as a point of similarity/comparison, but explicitly not attributed as the same campaign.
Botnet payload mentioned as part of a comparison to other npm supply-chain attacks.
A modular multi-stage malware runtime delivered via compromised AsyncAPI npm packages. It executes at import time, fetches a second-stage sync.js from IPFS, decrypts an embedded payload, establishes persistence, communicates with C2, and supports RAT-style capabilities including shell execution, file transfer, proxying, and exfiltration. The analyzed build had active C2 and persistence, while credential harvesting, propagation, AI-poisoning, metamorphic generation, and evasion modules were present but disabled.
A modular malware payload delivered via compromised AsyncAPI npm packages. It executes through an import-time loader and provides command-and-control, persistence, decentralized fallback channels, and potential credential harvesting and propagation across developer workstations, CI/CD pipelines, container builds, and production 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.