Der Miasma-Wurm befällt die NPM-Pakete von Red Hat: Erkennen, Rotieren, Ersetzen
Ein sich selbst verbreitender npm-Wurm befiel am 29. Mai 2026 sieben @redhat-cloud-services-Pakete. Er verbirgt die Persistenz in Claude Code und VS Code. Ein 60-Sekunden-Erkennungsskript, ein Rotationsdurchlauf und die strukturelle Korrektur.
Am 1. Juni 2026 fingen Forscher einen sich selbst verbreitenden NPM-Wurm, der seit dem 29. Mai aktiv war.
Seine Visitenkarte ist eine Commit-Nachricht: „Miasma: The Spreading Blight.“ Ein kompromittierter Red Hat
Das GitHub-Konto eines Mitarbeiters hat böswillige Orphan-Commits direkt in RedHatInsights übertragen
Repositorys, Umgehen der Codeüberprüfung und sieben @redhat-cloud-services Pakete
hat jedem, der sie installiert hat, eine Nutzlast zum Stehlen von Zugangsdaten verschickt.
Zwei Dinge machen Miasma ein neues Runbook wert. Es läuft in einem preinstall Haken, also es
Brände vorher postinstall und selbst eine abgebrochene Installation kann zum Auslösen führen. Und es pflanzt
Persistenz in Ihren Entwicklertools: ein SessionStart-Hook in Claude Code und ein
tasks.json mit "runOn": "folderOpen" in VS-Code-Projekten. Löschen
node_modules tut denen nichts. Hier ist das Playbook zum Erkennen, Drehen und Ersetzen.
Die sieben kompromittierten Pakete
Jeder ist unter dem @redhat-cloud-services Umfang:
vulnerabilities-clienttsc-transform-importstopological-inventory-clientsources-clientrule-componentsremediations-clientrbac-client
Schritt 1: Erkennung in weniger als 60 Sekunden
Drei Signale: ein kompromittiertes Paket in Ihrem Baum, ein Persistenzartefakt in Claude Code oder VS
Code und Exfil-Verkehr, getarnt als Anrufe an api.anthropic[.]com:443/v1/api. Lauf
Dies von jedem Host mit npm Und git:
Jeder Treffer bedeutet, dass Sie mit Schritt 2 fortfahren. Der Wurm beendet die Ernte, bevor Sie mit dem Lesen fertig sind Hinweis, daher reicht ein einziges Signal aus, um mit der Rotation zu beginnen.
Der Beharrlichkeitstrick ist der Teil, der Teams stört, die zu schnell aufräumen. Sie können das entfernen
Schlechtes Paket, neu erstellen node_modules, und immer noch einen SessionStart-Hook haben
~/.claude/settings.json Dadurch wird die Nutzlast erneut ausgeführt, wenn Sie Claude das nächste Mal öffnen
Code. Prüfung ~/.claude/settings.json, .vscode/tasks.json, Und
.github/workflows von Hand, bevor Sie einen Gastgeber anrufen.
Schritt 2: Bestätigen Sie das Veröffentlichungsfenster mit der npm-API
Bevor Sie eine „sichere“ Version anpinnen, prüfen Sie, wann sie veröffentlicht wurde. Die bösartigen Versionen landeten auf
29. Mai, daher ist jede Veröffentlichung, die an diesem Tag oder später datiert ist, verdächtig. Der Botoi-NPM-Endpunkt gibt die zurück
Geänderter Zeitstempel und Betreuerliste ohne npm install:
A modified Zeitstempel am oder nach 2026-05-29 bedeutet Pin an den letzten bekannten
Gute Veröffentlichung, die vor diesem Datum veröffentlicht wurde, nicht die neueste. Die GET-Form wird im CDN zwischengespeichert, also bei Ihnen
kann dies in eine Abhängigkeitsgenehmigungsprüfung umwandeln, die bei jeder Pull-Anfrage ausgeführt wird.
Schritt 3: Drehen Sie die Stämme und schrubben Sie sie dann
Miasma sammelt GitHub Actions-Geheimnisse, NPM-Tokens, Cloud-Anmeldeinformationen, Kubernetes und Vault Material, SSH-Schlüssel und Git-Anmeldeinformationen. In dieser Reihenfolge rotieren: NPM-Token stoppen neue Veröffentlichungen, GitHub-PATs stoppen Repository-Schreibvorgänge, Cloud-IAM-Schlüssel stoppen die Datenexfilierung, dann Vault und SSH. Nicht zuerst untersuchen; drehen, dann untersuchen.
Die Nutzlast speichert diese Geheimnisse in Protokollen, die in Datadog, Sentry und Ihr Ticketing einfließen System. Leiten Sie Hochrisikofelder durch einen geheimen Detektor und schließen Sie sie nicht, bevor sie einen erreichen abfragbarer Index:
Schritt 4: Blockieren Sie die nächste Welle mit einem CI-Guard
Miasma benötigt drei Dinge auf Ihrem Runner: eine kompromittierte Version, einen Lifecycle-Hook, der ausgeführt wird, und eine Persistenzdatei, die geschrieben werden kann. Zerbrich irgendjemanden. Diese GitHub-Aktionsprüfung deaktiviert den Lebenszyklus Skripte für den Job, schlägt bei Miasma-Persistenzmarkierungen fehl, markiert Red Hat-Bereichspakete und erfordert eine signierte Herkunft zur Laufzeit abhängig von:
Halten ignore-scripts standardmäßig aktiviert und führen Sie eine kurze Zulassungsliste für Pakete, die
rechtmäßig erstellen (TypeScript, esbuild, Sharp). Ein Preinstall-Hook, der nie ausgeführt wird, kann kein Harvesting durchführen
irgendetwas.
Schritt 5: Verkleinern Sie die Oberfläche, die einen Wurm beherbergen kann
Die Pakete, die in den 2026-Wellen am häufigsten vergiftet wurden, umfassen einen einzigen Netzwerkaufruf: API-Clients, Validierungshelfer und kleine Dienstprogramme. Jeder einzelne ist ein Kandidat zum Löschen und Ersetzen durch einen widerruflicher HTTPS-Aufruf, der keinen lokalen Code ausführt.
| Kategorie | Typische NPM-Abhängigkeit | HTTP-Ersatz | Explosionsradius bei Verletzung |
|---|---|---|---|
| Geheim- und PII-Scan | Secretlint, Pii-Detektor | /v1/pii/detect |
Rotieren Sie einen API-Schlüssel |
| Paketmetadaten | NPM-Registrierungs-Client-Wrapper | /v1/npm/{package} |
Rotieren Sie einen API-Schlüssel |
| E-Mail-Validierung | Validator, Deep-E-Mail-Validator | /v1/email/validate |
Rotieren Sie einen API-Schlüssel |
| Verstoßprüfung | HiBP-Client-Pakete | /v1/breach/check |
Rotieren Sie einen API-Schlüssel |
Wichtige Erkenntnisse
-
Überprüfen Sie die Persistenzdateien des Dev-Tools. Miasma versteckt sich darin
~/.claude/settings.jsonUnd.vscode/tasks.json. Entfernen des Pakets Der Haken wird nicht entfernt. -
Pin nach Veröffentlichungsdatum. Alles in den sieben Paketen, die am oder danach datiert sind
29.05.2026 ist verdächtig. Verwenden
/v1/npm/{package}zu bestätigen. - Drehen Sie sich um, bevor Sie nachforschen. npm-Tokens, GitHub PATs, Cloud-Schlüssel, Vault, SSH. Exfil ist in Sekundenschnelle abgeschlossen.
- Deaktivieren Sie standardmäßig Lebenszyklusskripte. Ein Preinstall-Hook, der niemals ausgeführt wird, kann dies nicht etwas stehlen.
- Schrumpfen Sie die Oberfläche. Ersetzen Sie Single-Call-NPM-Pakete durch widerrufbares HTTP Endpunkte. Ein gehackter Schlüssel stirbt in einer Anfrage.
Botoi-Ausstellungen /v1/npm/{package}, /v1/pii/detect,
/v1/breach/checkund etwa 200 weitere Einzweck-Endpunkte hinter einem API-Schlüssel
mit 5 Anforderungen/Minute kostenlos. Verknüpfen Sie sie mit Ihrem Vorfall-Runbook oder verbinden Sie sie
MCP-Server an Claude
Programmieren Sie, damit Ihr Assistent das Erkennungsskript für Sie ausführt. Beginnen Sie mit dem
interaktive Dokumente.
FAQ
- Was ist der Miasma-Lieferkettenangriff?
- Miasma ist ein sich selbst verbreitender npm-Wurm, der am 1. Juni 2026 entdeckt wurde und dessen erstes „Miasma: The Spreading Blight“-Commit auf den 29. Mai 2026 datiert. Ein kompromittiertes GitHub-Konto eines Red Hat-Mitarbeiters schob böswillige Waisen-Commits in RedHatInsights-Repositorys und umging dabei die Codeüberprüfung. Außerdem wurden sieben @redhat-cloud-services-npm-Pakete mit einem verschleierten Preinstall-Hook veröffentlicht, der Daten sammelt Anmeldeinformationen und verbreitet sich auf neue Hosts.
- Welche Pakete wurden kompromittiert?
- Sieben Pakete im Geltungsbereich von @redhat-cloud-services: vulnerabilities-client, tsc-transform-imports, topological-inventory-client, source-client, Rule-components, remediations-client und rbac-client. Wenn Ihre Sperrdatei nach dem 29. Mai 2026 eines davon entfernt hat, behandeln Sie den Host als kompromittiert und rotieren Sie alle von ihm berührten Anmeldeinformationen.
- Wie unterscheidet sich Miasma von früheren NPM-Würmern?
- Miasma wird in einem Preinstall-Hook ausgeführt, sodass es vor der Postinstallation ausgelöst wird und selbst eine abgebrochene Installation es auslösen kann, und es sorgt für Persistenz in Entwicklertools, nicht nur in CI. Es fügt einen SessionStart-Hook in Claude Code ein, schreibt eine task.json mit runOn FolderOpen in VS Code-Projekte und generiert eine eindeutig verschlüsselte Nutzlast pro Infektion, um Signaturscans zu umgehen. Durch das Löschen von node_modules wird es nicht entfernt.
- Was stiehlt der Wurm und wohin schickt er es?
- GitHub Actions-Geheimnisse, NPM-Tokens, Cloud-Anmeldeinformationen, Kubernetes- und Vault-Material, SSH-Schlüssel und Git-Anmeldeinformationen. Es tarnt die Exfiltration als Datenverkehr zu api.anthropic[.]com auf Port 443 und greift auf GitHub als sekundären Kanal zurück, sodass die Ausgangsfilterung auf unbekannten Domänen allein sie nicht auffängt.
- Wie reduzieren Einzweck-HTTP-APIs dieses Risiko?
- Ein Paket mit einem Preinstall-Hook führt beliebigen Code auf jedem Computer aus, der es installiert. Ein HTTPS-Aufruf an eine Einzweck-API führt lokal nichts aus und wird durch einen widerrufbaren Schlüssel gesteuert. Wenn der API-Anbieter verletzt wird, rotieren Sie einen Schlüssel. Wenn ein Paket in Ihrem Baum verletzt wird, wird die Malware bereits ausgeführt. Der Tausch besteht in geringen Latenzkosten bei einem winzigen Explosionsradius und einem sofortigen Widerruf.
Starte mit botoi zu entwickeln
150+ API-Endpunkte für Abfragen, Textverarbeitung, Bildgenerierung und Entwickler-Tools. Kostenloser Tarif, keine Kreditkarte nötig.