Angriff auf Laravel-Lang-Pakete kompromittiert 700 Versionen und installiert Credential Stealer in PHP-Umgebungen

In der Nacht vom 22. Mai hat ein Agent mit organisatorischem Zugriff auf GitHub 502 historische Tags von vier PHP-Paketen neu geschrieben und ein Backdoor injiziert, das Cloud-Anmeldeinformationen, CI/CD-Token und Kubernetes-Secrets ohne sichtbare Warnungen exfiltriert.
502 Tags in weniger als einer Stunde neu geschrieben
In der Nacht vom 22. Mai 2026, zwischen 22:32 und 23:24 UTC, hat ein Agent mit Schreibzugriff auf die Laravel-Lang-Organisation auf GitHub 502 historische Tags von vier von der Community unterstützten PHP-Paketen neu geschrieben: laravel-lang/lang, laravel-lang/http-statuses, laravel-lang/attributes und laravel-lang/actions. Der Vorfall wurde am 23. Mai von den Firmen Socket und Aikido Security öffentlich gemacht, mit einer im offiziellen Projekt-Repository eröffneten Issue, die die Kompromittierung am selben Tag bestätigte.
Diese Pakete gehören nicht zum offiziellen Laravel-Framework. Es handelt sich um Drittanbieter-Lokalisierungsbibliotheken, die von Laravel-Anwendungen für die Internationalisierung weit verbreitet genutzt werden und über Packagist, das zentrale Repository für PHP-Pakete, verteilt werden. Socket zählte mehr als 700 kompromittierte Versionen; Aikido bestätigte 233 betroffene Paketartefakte in drei der vier Repositories. Die Anzahl variiert, da Socket alle neu geschriebenen historischen Tags einbezieht, während Aikido nur die Artefakte mit verifiziertem funktionalen Payload zählt.
Wie der Payload ohne Warnungen ausgeführt wird
Die bösartige Datei src/helpers.php wurde zu jeder kompromittierten Version hinzugefügt und in den Schlüssel autoload.files von composer.json eingetragen. Jeder Entwickler, der composer install oder composer update gegen eine kompromittierte Version ausführte, lud den Stealer automatisch beim ersten PHP-Request der Anwendung, ohne dass eine Sicherheitswarnung oder sichtbare Hash-Änderung im Packagist angezeigt wurde. Der Code verbindet sich mit der C2-Domain flipboxstudio[.]info, um eine plattformübergreifende zweite Stufe herunterzuladen, die mit Windows, Linux und macOS kompatibel ist.
Cloud-Schlüssel (AWS, GCP und Azure), Kubernetes- und HashiCorp Vault-Secrets, CI/CD-Pipeline-Token, SSH-Schlüssel, .env-Dateien, Daten aus Chromium- und Firefox-Browsern, Tresore von Passwort-Managern und lokale Konfigurationen von Tools wie dem Anthropic Claude Code gehören zu den Zielen des Stealers. Für DevSecOps-Teams mit mehreren Repositories könnte ein einziges composer update auf einer Build-Maschine die gesamte Kette der organisatorischen Anmeldeinformationen innerhalb von Sekunden exponiert haben.
Die Metadaten der kompromittierten Commits listen den Autor als "Your Name <you@example.com>", die Standardkonfiguration von Git, was auf die Nutzung einer neu konfigurierten Umgebung oder einen absichtlichen Versuch hinweist, keine nachvollziehbaren Spuren zu hinterlassen.
Der Vektor, der diesen Angriff unterscheidet
Der Angreifer hat keine Schwachstelle in Packagist oder Composer ausgenutzt. Er erlangte direkten Schreibzugriff auf die Laravel-Lang-Organisation auf GitHub und ersetzte historische Versionen, die Entwickler als stabil und geprüft betrachten. Anders als beim klassischen Typosquatting oder der Veröffentlichung neuer bösartiger Versionen kompromittierte dieser Angriff alte Versionen, die in composer.lock-Dateien festgelegt sind, ohne eine sichtbare Versionsnummer für das Entwicklungsteam zu ändern. CI/CD-Pipelines, die so konfiguriert sind, dass sie historisch geprüfte Versionen fixieren, um nicht geprüfte Updates zu vermeiden, wurden zum Hauptvektor für die Verbreitung des Payloads.
StepSecurity, die die Megalodon-Kampagne zur Kompromittierung von GitHub Actions-Pipelines, die seit dem 18. Mai 2026 aktiv ist, verfolgt, verband diesen Vorfall mit einem breiteren Muster: Der Angreifer erlangt organisatorische Anmeldeinformationen von GitHub und operiert in großem Maßstab gegen alle zugänglichen Repositories. Der anfängliche Zugriffsvektor auf die Laravel-Lang-Organisation wurde von den Sicherheitsfirmen noch nicht öffentlich bestätigt.
Sofortmaßnahmen für Sicherheitsteams
Organisationen mit Abhängigkeiten zu den vier betroffenen Paketen sollten das Composer-Abhängigkeitsdiagramm auditiaren und die Hashes der installierten Versionen mit den legitimen Aufzeichnungen von Packagist vergleichen. Die GitHub Advisory Database veröffentlichte einen Erkennungsbefehl, um in den Systemprotokollen zu prüfen, ob eine Ausnutzung erfolgt ist. Alle Anmeldeinformationen in Umgebungen, die die kompromittierten Versionen ab dem 22. Mai ausgeführt haben, sollten als potenziell exponiert behandelt und rotiert werden: mindestens GitHub Actions-Token, Cloud-Zugriffsschlüssel und SSH-Zertifikate.
Packagist und das Laravel-Lang-Team haben die bösartigen Versionen entfernt und die Repositories aus dem legitimen Verlauf wiederhergestellt. Der Vorfall weist auf eine anhaltende strukturelle Lücke in PHP-Abhängigkeitsketten hin: Der Composer vertraut standardmäßig auf die Integrität der Git-Commits, die den Tags ohne unabhängige kryptografische Überprüfung zugrunde liegen. Projekte mit SLSA Level 3 oder Signaturen über Sigstore würden die Manipulation automatisch erkennen; die meisten PHP-Workflows operieren jedoch noch nicht auf diesem Niveau der Nachverfolgbarkeit, und das Eintreffen des Angriffs über eine vertrauenswürdige GitHub-Organisation sollte diese Berechnung für Sicherheitsteams, die die Einführung noch aufgeschoben haben, verändern.