← Dispatches

TLP:CLEAR · 2026-06-05

The Blight Still Blooms: 83 Live Miasma Dead Drops — and the Victims You Can Name Without Decrypting

JFrog documented the Red Hat npm hijack. We mapped what they left behind: 83 public GitHub dead drops still live four days later, encrypted exfil you cannot read — and compromised accounts you can identify from repo ownership alone. You do not need the attacker's private key to know who got hit.

On June 1, JFrog Security Research published analysis of Shai-Hulud — Miasma, a supply-chain worm that hijacked dozens of packages under @redhat-cloud-services on npm. Microsoft, Sonatype, and StepSecurity followed with expanded IOC lists and a second execution path: silent binding.gyp command expansion that bypasses install-script monitoring. Those reports explain how the worm works. This dispatch maps what is still sitting in the open — and answers a question defenders keep asking wrong: do you need to decrypt the exfil to know who got hit?

No. You do not.

What Miasma Leaves Behind

When primary exfiltration paths fail — or as a parallel channel — the payload creates public GitHub repositories using stolen victim tokens. Each repo is stamped with a campaign marker in the description:

Miasma: The Spreading Blight

Stolen data lands under results/ as timestamped JSON files:

results/results-<unix_ms>-<counter>.json

Each file is a hybrid encryption envelope:

FieldRole
envelopeBase64 AES-256-GCM ciphertext (gzip-compressed JSON payload)
keyBase64 RSA-4096-OAEP–wrapped AES session key

We pulled live samples from multiple dead drops. The key field decodes to 512 bytes — consistent with RSA-4096 wrapping. The envelope decodes to multi-kilobyte AES-GCM blobs. This matches prior Shai-Hulud analysis from JFrog, StepSecurity, Datadog, and Ox Security: the attacker embeds a public key; only their private key unwraps the session key.

You can read the dead drops. You cannot read the secrets inside them. Defenders should still treat every identity that created one of these repos as fully compromised.

The Live Network

We searched GitHub for repositories whose description matches the Miasma marker with creation dates after June 1, 2026.

83 repositories. Still public. Still populated.

MetricValue
Total dead-drop repos83
Active window2026-06-02 → 2026-06-04 (UTC)
Repos on Jun 246
Repos on Jun 333
Repos on Jun 44
Unique GitHub accounts used as staging3

The dead drops are not hosted on attacker infrastructure. They are created on the victim's GitHub identity — the same token the worm stole is used to push encrypted blobs to api.github.com.

GitHub accountDead-drop reposNotes
windy62981User account; 487 public repos total; account created 2023-02-12
0tabek161User account; repo updated 2026-06-04 UTC
HerGomUli1User account; 2 result files in repo

This is not 83 unrelated victims. It is three compromised GitHub identities, with one account used as a high-volume staging point — consistent with a developer machine or CI runner that executed the worm repeatedly, creating a new Dune-themed repo per exfiltration batch.

windy629 Is a Victim, Not the Operator

The volume on windy629 raises a fair question: is this someone studying the campaign and copying dead drops on purpose? We do not think so.

The account has years of unrelated development history — YOLOv8 object detection, medical NER with BERT, coding-agent research repos — dating to 2023. Then, on May 19, 2026, it sprouted 392 additional repositories with the reversed Shai-Hulud marker (niagA oG eW ereH :duluH-iahS). On June 2–4, 81 more appeared with the Miasma description. Commit messages on every sampled dead drop are identical boilerplate: Initial commit, then Add files. within seconds. READMEs are auto-generated one-liners. No analysis writeups. No forks of vendor research repos.

A researcher replicating the pattern manually might create a handful of sandbox repos with dummy JSON. They would not leave 473 public repositories containing live RSA-wrapped ciphertext keyed to the attacker. They would not get hit by both the May Shai-Hulud wave and the June Miasma wave on the same account.

Assessment: windy629 is almost certainly a compromised developer account, not Miasma operator infrastructure. Treat associated GitHub tokens, npm credentials, Actions secrets, and cloud keys as burned. Notify the account owner if you have an out-of-band path — do not assume malice from the handle alone.

StepSecurity's parallel enumeration surfaced a separate high-volume account, liuende501, with 236 dead drops in the broader binding.gyp wave. Same campaign family, different victims. Our mapping covers the Miasma-branded subset only.

Naming the Repos

Repository names follow {adjective}-{noun}-{number} — the same generative pattern documented in prior Shai-Hulud waves:

Top adjectivesCountTop nounsCount
spartan9onslaught10
savage8styx8
merciless8thunderbolt7
nemean7manticore7
dire7chimera7
ruthless6havoc6

Examples: windy629/brutal-onslaught-27954, windy629/savage-manticore-71041, 0tabek16/erebean-chimera-30356, HerGomUli/ruthless-aegis-83111.

Hunt query:

"Miasma: The Spreading Blight" in:description

Exfil Volume Without Decryption

We sampled results/ directories across the live set. Every sampled repo contained at least one JSON envelope. Sizes vary — small batches around 4–6 KB on disk, larger multi-file drops exceeding 160 KB in a single repo (windy629/savage-manticore-71041 held two result files totaling ~166 KB).

Commit messages on inspected repos were generic. That does not mean the dead-man switch (gh-token-monitor) is absent on the host. JFrog's guidance still applies: isolate before revoking tokens.

Relationship to the npm Wave

Miasma is not a separate threat actor. It is a campaign marker on the Shai-Hulud payload family, delivered through hijacked @redhat-cloud-services/* packages and additional packages in vendor IOC tables (Sonatype tracked 281 malicious versions in the binding.gyp wave alone).

Delivery highlights from vendor analysis:

- `preinstall`: `node index.js` on type-only packages

- `binding.gyp` silent execution when no explicit install script is present

- Bun bootstrap → obfuscated stealer → credential harvest → npm republish / GitHub abuse

- Persistence: kitty-monitor, gh-token-monitor, AI-tool hooks, workflow injection

What Intercept Cell adds: post-incident cartography. The npm packages may be pulled. The dead drops remain searchable. The victims remain identifiable from GitHub metadata.

Who to Treat as a Victim

If any of the following match your environment, assume compromise until proven otherwise:

1. GitHub account owns a repo with description Miasma: The Spreading Blight

2. Developer or CI installed a flagged @redhat-cloud-services version (see JFrog IOC table)

3. Unexpected Bun dependency or new preinstall script appeared in a dependency tree after June 1

4. New public repos with Dune-themed {adj}-{noun}-{digits} names appeared on a developer account

For the three accounts in this mapping: treat associated npm tokens, GitHub PATs, Actions secrets, cloud keys, and SSH material as burned. Rebuild runners from clean images. Remove persistence before token revocation.

Defensive Hunting

GitHub: search "Miasma: The Spreading Blight" in:description. Look for results/results-*.json, generic commit messages, and repo-creation bursts on single accounts.

npm / CI: audit lockfiles for @redhat-cloud-services/* versions in JFrog's XRAY list; prefer npm ci --ignore-scripts where lifecycle scripts are not required; inspect for unexpected bun dependency additions on patch bumps.

Network: exfiltration targets `api.github.com` — allowlisted everywhere, rarely blocked. Dead-drop exfil is designed to blend with normal developer activity.

What This Means

Vendor reports on Miasma focus on package names, install hooks, and CI pipeline compromise. That is the right response for prevention. But the worm also publishes searchable evidence of victimization — public repos on stolen tokens, encrypted but attributable through ownership metadata.

You cannot decrypt the envelopes without the attacker's RSA private key. You do not need to. The repo owner is the compromise indicator. Three accounts in this wave. Eighty-three dead drops still live when we looked. The npm packages may be yanked; the GitHub search index does not forget as quickly.

Hunt the description string. Map the bursts. Notify the account owners. Rotate everything that touched a flagged install.

IOC Summary

TypeIndicatorContext
Campaign markerMiasma: The Spreading BlightGitHub repo description
File pathresults/results-*.jsonEncrypted exfil dead drop
Naming pattern{adjective}-{noun}-{number}Dune-themed repo names
GitHub accountwindy62981 dead-drop repos (compromised staging account)
GitHub account0tabek161 dead-drop repo
GitHub accountHerGomUli1 dead-drop repo
GitHub accountliuende501~236 dead drops (StepSecurity; binding.gyp wave — related campaign)
npm scope@redhat-cloud-services/*Hijacked namespace — see JFrog for version list
Persistencekitty-monitor.service, gh-token-monitorShai-Hulud family persistence
Threat markerIfYouInvalidateThisTokenItWillNukeTheComputerOfTheOwnerCommit message variant in Shai-Hulud family
Prior markerniagA oG eW ereH :duluH-iahSReversed Shai-Hulud description on pre-Miasma dead drops

Intercept Cell Research is a Cipher Cortex research program. Hooked Scams is a scam investigation series from Intercept Cell Research.