Die jüngste Supply-Chain-Attacke zeichnet sich durch eine bemerkenswerte technische Sophistication aus. Anders als bei früheren TeamPCP-Kampagnen, die auf gestohlene Credentials setzten, ketteten die Angreifer bei der TanStack-Infiltration gezielt drei bekannte Sicherheitslücken zusammen: eine Pull-Request-Target-Misconfiguration, GitHub-Actions-Cache-Poisoning über Fork-Grenzen hinweg und die Extraktion von OIDC-Token direkt aus dem Speicher der GitHub-Actions-Runner.
Die Angreifer forken das TanStack/Router-Repository, benannten es in zblgg/configuration um und öffneten einen manipulierten Pull Request. Dies triggerte den Pull-Request-Target-Workflow, dessen Code von den Angreifern ausgeführt wurde und den GitHub-Actions-Cache vergiftete. Wenn später legitime Maintainer ihre PRs zu main mergten, restaurierte der Release-Workflow den bereits kompromittierten Cache. Die Angreifer konnten daraufhin OIDC-Token direkt aus dem Runner-Prozess extrahieren.
Mit diesen gestohlenen Token erzeugten die Angreifer gültige SLSA-Provenance-Zertifikate via Sigstore, wodurch die malware-infizierte Pakete wie vertrauenswürdige, legitim erstellte Komponenten erschienen. Damit wurden 84 manipulierte Artefakte über 42 TanStack-Pakete verteilt — jeweils zwei bösartige Versionen pro Paket.
Die Malware selbst ist beeindruckend komplex: Eine 2,3-MB-Datei namens router_init.js wurde direkt in die Pakettarballs injiziert. Der obfuskierte Code fungiert als mehrstufiger Credential-Stealer, der systematisch Umgebungsvariablen ausliest, API-Aufrufe tätigt und in modernen Cloud-nativen CI-Umgebungen alle relevanten Secrets sammelt. Dazu gehören Developer-Credentials, API-Keys, Cloud-Tokens, Kryptowallet-Daten und KI-Tool-Secrets.
Auffällig ist die Nutzung des Session-Netzwerks — eines dezentralisierten, schwer abzuschaltenden Kanals — für die Exfiltration. Stolen Credentials werden über drei Kanäle weitergeleitet: die Domäne git-tanstack[.]com, Session-Netzwerk und manipulierte GitHub-Repositories.
Bei PyPI-Paketen wie Mistral AI und Guardrails AI verwendeten die Angreifer andere Payloads. Die Guardrails-Variante enthielt Code zum Abrufen und Ausführen von Payloads und zielt zusätzlich auf Password-Manager wie 1Password und Bitwarden ab. Besonders beunruhigend: Die Malware aktiviert destruktive Funktionen auf Systemen mit Israel- oder Iran-Locales.
Deutsche Unternehmen sollten sofort prüfen, ob kompromittierte Versionen in ihren Umgebungen vorhanden sind, sämtliche potentiell betroffene Credentials rotieren und GitHub-Actions-Workflows auf ähnliche Misconfigurationen audieren.
