Die jüngste Angriffswelle begann nach Angaben der Quelle damit, dass der Akteur mehrere Schadpakete in den TanStack-Namespaces auf npm veröffentlichte und sich anschließend über gestohlene CI/CD-Zugangsdaten auf andere Projekte ausbreitete. Die Sicherheitsfirma StepSecurity betont, dass die infizierten Pakete über die legitime CI/CD-Pipeline ausgeliefert wurden und gültige SLSA-Provenance-Attestierungen der Signaturinfrastruktur von npm trugen, die an den legitimen Release-Workflow von TanStack/router gebunden waren.

Laut dem Post-Mortem-Bericht von TanStack verketteten die Angreifer drei Schwachstellen: einen riskanten „pull_request_target"-Workflow, eine Cache-Vergiftung in GitHub Actions sowie den Diebstahl von OIDC-Token aus dem Speicher des Runners. Auf diese Weise veröffentlichten sie 84 Schadversionen über 42 TanStack-Pakete hinweg, jeweils mit gültiger Provenance, gültigen Sigstore-Attestierungen und legitimen GitHub-Actions-Signaturen.

Endor Labs hebt einen raffinierten Git-Commit-Trick hervor: Die Angreifer nutzten einen verwaisten Commit in einem Fork des Repositorys TanStack/router, der über GitHubs geteilten Fork-Objektspeicher erreichbar blieb, obwohl er zu keinem Branch gehörte. Referenziert wurde der Commit über eine schädliche optionale Abhängigkeit, sodass npm den vom Angreifer kontrollierten Code bei der Installation automatisch lud und ausführte.

Die Schadsoftware zielt auf Entwicklergeheimnisse. Laut StepSecurity liest die Nutzlast den Prozessspeicher von GitHub Actions aus und sammelt Zugangsdaten aus mehr als 100 Dateipfaden, die mit Cloud-Anbietern, Kryptowährungs-Token und Messaging-Apps verknüpft sind. Zur Exfiltration nutzt die Malware das Session-P2P-Netzwerk, wodurch der Datenabfluss wie verschlüsselter Messenger-Verkehr erscheint und Erkennung, Sperrung und Abschaltung erschwert werden. Nach einer Infektion schreibt sich die Malware in Claude-Code-Hooks und in Auto-Run-Tasks von VS Code, sodass das Entfernen der Schadpakete sie nicht beseitigt.

Der Selbstverbreitungsmechanismus blieb weitgehend unverändert: Mit gestohlenen GitHub- und npm-Zugangsdaten werden die Pakete des betroffenen Maintainers aufgezählt, die Tarballs zum Einschleusen der Nutzlast verändert und anschließend Schadversionen erneut veröffentlicht. Laut der Plattform SafeDep unterscheidet sich zwar der Auslösemechanismus in den kompromittierten Paketen von Mistral AI und TanStack, beide bringen aber dieselbe Nutzlast zum Diebstahl von Zugangsdaten mit.

Microsoft Threat Intelligence analysierte die über ein schädliches Mistral-AI-Paket auf PyPI ausgelieferte Nutzlast. Der Akteur benannte sie „transformers.pyz" — möglicherweise, um die Open-Source-Bibliothek Transformers von Hugging Face nachzuahmen. Die Nutzlast installiert auf Linux-Systemen einen Infostealer mit einer einfachen Geofencing-Logik, der die Ausführung auf Hosts mit russischen Spracheinstellungen vermeidet. Zudem gibt es eine zerstörerische Zweitroutine: In Umgebungen, die offenbar aus Israel oder Iran stammen, greift ein probabilistischer Sabotagemechanismus mit einer Wahrscheinlichkeit von eins zu sechs, der einen rekursiven Löschbefehl (rm -rf/) ausführt. Dieses Verhalten ähnelt der Kampagne CanisterWorm, die TeamPCP in diesem Jahr gegen Kubernetes-Plattformen einsetzte und die Maschinen mit iranischer Zeitzone und Lokalisierung löschte.

Wer eine betroffene Paketversion heruntergeladen hat, sollte davon ausgehen, dass Zugangsdaten offengelegt wurden. Snyk-Forscher weisen darauf hin, dass der Angriff gültige SLSA-Build-Level-3-Attestierungen für Schadpakete erzeugt, weshalb es nötig sei, die Provenance zu prüfen und zur Installationszeit eine verhaltensbasierte Analyse sowie eine signaturbasierte Prüfung auf Schadpakete zu ergänzen. Längerfristig empfehlen die Forscher, ausschließlich Installationen aus Lockfiles zu erzwingen, um automatische oder stille Paket-Updates zu unterbinden. Listen der betroffenen Pakete finden sich in den Berichten verschiedener Sicherheitsanbieter.