
GitHub Actions tauchen mit Mini-Shai-Hulud-Malware wieder auf
Zwei zuvor kompromittierte GitHub Actions wurden wieder aktiviert und verbreiteten über eine Woche lang dieselbe Schadsoftware, wodurch nachgelagerte Workflows gefährdet wurden.
Angreifer haben letzte Woche kurzzeitig eine Lieferketten-Bedrohung wiederbelebt, als zwei Drittanbieter-GitHub-Actions, die zuvor in einer Malware-Kampagne im Mai beschlagnahmt worden waren, wieder aktiviert wurden und derselbe Schadcode weiterhin an ihren Release-Tags hing. Die Actions actions-cool/issues-helper und actions-cool/maintain-one-comment waren ab dem 16. September wieder zugänglich und blieben bis zum 25. September aktiv, sodass jeder Workflow, der sie über einen Versions-Tag referenzierte, die alte Nutzlast stillschweigend herunterladen und ausführen konnte.
Dieser Vorfall, der von Forschern des Applikationssicherheitsunternehmens Socket aufgedeckt wurde, geht auf die Mini-Shai-Hulud-Lieferkettenattacke zurück, die im Mai 323 Pakete und 639 Paketversionen im Node-Package-Manager-Index (npm) infizierte. Diese Kampagne zielte auf Entwickler-Token, Zugangsdaten und Secrets für Continuous Integration und Continuous Delivery (CI/CD) ab. Das Sicherheitsteam von GitHub hatte beide Actions nach der ersten Kompromittierung am 18. Mai entfernt, in der Annahme, die Bedrohung sei neutralisiert. Der Maintainer aktivierte die Repositories jedoch später erneut, ohne zuvor die Tags zu bereinigen, die weiterhin auf einen Commit mit einer verschleierten Nutzlast in der Datei index.js verwiesen.
Die Zeitleiste von Socket zeigt, dass die Offenlegung am 16. September zwischen 11:09 und 18:16 GMT+2 begann. Neun Tage lang hätten alle nachgelagerten Projekte, die die Actions über einen veränderlichen Versions-Tag anstatt über einen festgenagelten Commit-Hash verwendeten, beim nächsten Lauf den infizierten Code abgerufen. Die Actions werden häufig für die automatisierte Issue-Verwaltung eingesetzt und laufen daher in vielen Repositories fast täglich. GitHub's eigener Abhängigkeitsgraph listet allein für issues-helper rund 15.000 abhängige Repositories auf, wobei die tatsächliche Zahl derer, die die bösartige Version bezogen haben, unbekannt ist, da die Forscher nicht ermitteln konnten, wie viele Projekte die Actions per Tag oder per fixiertem Commit referenzieren.
Die fragliche Nutzlast ist dasselbe verschleierte Skript vom Mai, das darauf ausgelegt ist, Secrets aus der CI/CD-Pipeline zu stehlen. In der modernen Softwareentwicklung erstellt, testet und deployt eine CI/CD-Pipeline automatisch Code und hat dabei oft Zugriff auf sensible Zugangsdaten wie API-Schlüssel und Datenbankpasswörter. Wenn eine bösartige Action innerhalb dieser Pipeline läuft, kann sie diese Secrets unbemerkt zu einem vom Angreifer kontrollierten Server weiterleiten. Die erneute Aktivierung hat, selbst ohne neuen Angriffscode, die Hintertür für jeden Workflow effektiv wieder geöffnet, der seit der ersten Bereinigung nicht aktualisiert oder überprüft worden war.
Am 25. September wurden beide Actions auf GitHub erneut deaktiviert, was dazu führte, dass Workflows, die noch auf sie verweisen, sofort fehlschlugen, anstatt die Malware auszuführen. Ein fehlgeschlagener Build ist zwar störend, aber sicherer als das unbemerkte Abfließen von Zugangsdaten. Die Sicherheitswarnung von Socket fordert Entwickler auf, alle Verweise auf beide Actions zu prüfen, sie zu entfernen oder auf einen verifizierten sauberen Commit zu fixieren, die zwischen dem 16. und 25. September ausgeführten Workflow-Läufe zu überprüfen und sofort alle Secrets zu rotieren, auf die diese Workflows Zugriff hatten. Für Website-Betreiber, die auf solche automatisierten Integrationen angewiesen sind, bietet eine verwaltete Hosting-Umgebung wie AEU Hosting fortlaufendes Malware-Scanning und Sicherheits-Härtung, um den Auswirkungsradius zu begrenzen, wenn externe Abhängigkeiten kompromittiert werden.
Die Mini-Shai-Hulud-Attacke veranschaulicht, wie Lieferkettenrisiken lange nach der ersten Eindämmung erneut auftauchen können, wenn Maintainer die Repositories nicht gründlich bereinigen. Das npm-Ökosystem, das von JavaScript-Entwicklern breit genutzt wird, ist ein häufiges Ziel, da ein einziges infiziertes Paket in Tausende Projekte durchsickern kann. Dieser Fall erinnert daran, dass es nicht ausreicht, eine Action zu deaktivieren; die Tags und Commits selbst müssen von bösartigen Inhalten gesäubert werden. Verteidigern wird außerdem geraten, Drittanbieter-Actions auf einen bestimmten, geprüften Commit-Hash zu fixieren, anstatt auf einen veränderlichen Tag zu verweisen – eine Maßnahme, die die automatische erneute Bereitstellung der Malware verhindert hätte.
So schützen Sie sich
- Bitten Sie Ihren Entwickler, alle automatisierten Workflows auf die Verwendung von actions-cool/issues-helper oder actions-cool/maintain-one-comment zu überprüfen.
- Falls diese Actions verwendet wurden, ändern Sie sofort alle Passwörter, API-Schlüssel oder Secrets, auf die diese Workflows Zugriff hatten.
- Überprüfen Sie die Bereitstellungs- und Aktivitätsprotokolle Ihrer Website auf ungewöhnliches Verhalten zwischen dem 16. und 25. September 2026.
- Weisen Sie Ihr Team an, bei der Verwendung von Drittanbieter-GitHub-Actions immer auf einen bestimmten Commit-Hash zu verweisen, statt auf einen veränderlichen Versions-Tag.
- Löschen oder sperren Sie alle öffentlich zugänglichen Token oder Schlüssel, die während des Zeitraums, in dem die Malware aktiv war, möglicherweise offengelegt wurden.
Begriffe Erklärt
- GitHub Actions Eine Funktion, mit der Entwickler automatisch Aufgaben ausführen können, z. B. Code testen oder eine Website bereitstellen, wenn bestimmte Ereignisse eintreten.
- supply-chain attack Ein Cyberangriff, der auf ein vertrauenswürdiges Drittanbieter-Tool oder einen Dienst abzielt, das/der von vielen genutzt wird, sodass sich die Malware verbreitet, wenn dieses Tool aktualisiert oder installiert wird.
- npm (Node Package Manager) Eine große Online-Bibliothek, in der Entwickler vorgefertigte Code-Stücke für JavaScript-Projekte teilen und herunterladen.
- CI/CD secrets Sensible Informationen wie Passwörter und Zugriffsschlüssel, die automatisierte Build- und Bereitstellungssysteme für den Zugriff auf gesicherte Dienste verwenden.
- mutable version tag Ein Label, das auf die neueste Version eines Code-Stücks verweist und ohne Wissen des Nutzers geändert werden kann, um auf anderen Code zu zeigen.
- commit hash Ein einzigartiger, unveränderlicher Fingerabdruck für eine bestimmte Code-Version, mit dem Software auf eine vertrauenswürdige Momentaufnahme festgelegt wird.
- obfuscated payload Bösartiger Code, der absichtlich verschleiert wurde, um die Erkennung und Analyse zu erschweren.