Der Kern des Angriffs lag nicht im PHP-Code selbst; die PHP-Bibliotheken blieben gutartig und enthielten keine Installations-Hooks oder schädliche Netzwerkaktivität . Stattdessen injizierten die Angreifer 583 schädliche GitHub Actions-Workflow-Dateien (
.github/workflows/*.yml) in die Quell-Repositories des Entwicklers. Jede betroffene Paketversion enthielt zwischen 55 und 62 dieser Workflow-Dateien . GitHub Actions-Workflows sind YAML-Dateien, die automatisierte Aufgaben wie Tests oder Bereitstellungen definieren. Die Angreifer zweckentfremdeten diese legitime Automatisierungsinfrastruktur.
Sobald ein Fork oder eine Kopie des kompromittierten Repositorys einen Workflow auslöste (z. B. durch ein push-Ereignis), wies die schädliche .yml-Datei den von GitHub gehosteten Ubuntu-Runner an : (1) die CPU-Architektur des Runners zu erkennen; (2) ein Scan- und Exploit-Payload von einem Command-and-Control-Server (C2) unter der IP-Adresse
43[.]228[.]157[.]68 herunterzuladen; (3) das Internet nach Systemen mit cPanel- und WHM-Diensten zu durchsuchen; (4) die identifizierten Systeme automatisch mit der unten beschriebenen Schwachstelle auszunutzen; (5) die gestohlenen Daten an den C2-Server zu exfiltrieren.
Dies verwandelte jeden ausgelösten Workflow effektiv in einen Scan- und Exploit-Knoten, der GitHub‘s kostenlose Infrastruktur als verteilte Plattform für den Angriff nutzte .
Das Ziel der Kampagne war CVE-2026-41940, eine kritische Sicherheitslücke in cPanel und WebHost Manager (WHM) .
cpsrvd Basic-Authentication-Handler Authorization-Header mit rohen Zeilenumbrüchen senden. Dadurch war es möglich, beliebige Eigenschaften in eine Sitzungsdatei zu injizieren, wie user=root und hasroot=1, was effektiv Root-Level-Administratorzugriff auf das WHM-Interface ohne gültiges Passwort gewährte Sobald der Exploit auf einem kompromittierten cPanel/WHM-Server erfolgreich war, war das Post-Exploitation-Payload darauf ausgelegt, eine breite Palette von Zugangsdaten und Geheimnissen zu sammeln. Zu den primären Zielen gehörten :
Der Diebstahl einer so breiten Palette von Zugangsdaten deutet auf einen datenagnostischen, opportunistischen Zugriff auf alle auf dem kompromittierten Server vorhandenen wertvollen Zugangstokens hin .
Die 583 Workflow-Dateien in den 10 Packagist-Paketen waren nur die erste Entdeckung. Durch die Analyse von Angreifer-Indikatoren wie einer gemeinsam genutzten DNSHook-Callback-Domain und Code-Wiederverwendungsmustern deckten Forscher eine viel größere Operation auf :
Diese massive Diskrepanz deutet stark darauf hin, dass die Angreifer viele weitere Entwicklerkonten und Repositories über das einzelne dinushchathurya-Konto hinaus kompromittiert haben . Die Kampagne war kein Single-Point-of-Failure, sondern eine koordinierte Multi-Account-Operation. The Hacker News berichtete im Mai 2026 über einen separaten, früheren Packagist-Supply-Chain-Angriff, der 8 Pakete mit verwandten schädlichen Elementen kompromittierte
, was die Verwundbarkeit des Ökosystems weiter unterstreicht.
Die Kampagne stellt eine anhaltende Bedrohung dar, da die Infrastruktur der Angreifer nicht vollständig neutralisiert ist. Die Kampagne kann durch fortgesetzt werden:
43[.]228[.]157[.]68) könnte noch betriebsbereit sein und aktiv Daten empfangen Während das ursprüngliche Entwicklerkonto auf Packagist gesperrt wurde, bedeutet das schiere Ausmaß der übereinstimmenden Workflow-Dateien (bis zu ~16.000), dass die Operation eine große Angriffsfläche hat, die schwer vollständig zu beseitigen ist .
Basierend auf der veröffentlichten Analyse sollten Organisationen und Entwickler sofort die folgenden Maßnahmen ergreifen :
push- oder workflow_dispatch-Triggern ohne manuelle Überprüfung ausgeführt werden.43[.]228[.]157[.]68) und der bekannten DNSHook-Callback-Domain .github/workflows/-Dateien, da der PHP-Code selbst sauber sein kann, während der Angriff vollständig in der CI/CD-Konfiguration lebt