CodeQL-Lieferkettenangriffsrisiko – Sicherheitsvorfall ausgelöst durch offengelegtes GitHub-Secret
(praetorian.com)- Durch ein offengelegtes GitHub-Secret war CodeQL, das statische Analysetool von GitHub, einem Lieferkettenangriff ausgesetzt
- Der betreffende Schlüssel war 1,022 Sekunden lang gültig; in dieser Zeit konnte ein Angreifer in GitHub-Actions-Workflows beliebigen Code ausführen
- Diese Schwachstelle ist als öffentliche CVE erfasst: CVE-2025-24362
Zentrale Schadensszenarien
Über diese Schwachstelle hätte ein Angreifer folgende Angriffe ausführen können:
- Exfiltration des Quellcodes von Repositories, die CodeQL verwenden (Verletzung geistigen Eigentums)
- Diebstahl von GitHub-Actions-Secrets und mögliche Folgeangriffe
- Codeausführung über CodeQL-Workflows in interner Infrastruktur
- Auch Secrets aus Workflows, die GitHub Actions Cache verwenden, konnten gestohlen werden
Angriffserkennung und Experimentverlauf
- Das Forschungsteam von Praetorian entwickelte ein Tool zum Scannen von Secrets, die in von GitHub Actions erzeugten Workflow-Artefakten enthalten sind
- In CodeQL-bezogenen Repositories wurde ein Debug-Artefakt mit enthaltenem Secret entdeckt
- Es wurde das PoC-Tool
artifact_racer.pyerstellt und ausgeführt, das belegt, dass ein Angreifer während der Gültigkeit des Schlüssels Branches/Tags erstellen und Dateien pushen konnte
Zentrale Versuchsergebnisse
- Mit diesem Token konnte ein Angreifer:
- einen neuen Branch erstellen
- Dateien pushen
- Tags hinzufügen
- CodeQL referenziert standardmäßig das Tag
v3, und ein Angreifer konnte dieses Tag überschreiben → Verteilung von Schadcode an alle CodeQL-Nutzer möglich
Ausbreitungspotenzial: Warum ist das gefährlich?
- Die meisten Nutzer konfigurieren CodeQL nicht manuell, sondern klicken in den GitHub-Repository-Einstellungen auf die Schaltfläche "Enable CodeQL"
- Der dabei automatisch eingerichtete Workflow referenziert das Repository
github/codeql-actionund basiert auf dem Tagv3 - Wenn ein Angreifer das Tag
v3mit einem bösartigen Commit überschreibt, wird in zahlreichen Projekten automatisch Schadcode ausgeführt
Zusätzliche Angriffsmöglichkeit: Cache Poisoning
- Der standardmäßige CodeQL-Workflow verwendet GitHub Actions Cache
- Dadurch kann ein Angreifer einen bösartigen Cache in die Build-Pipeline einschleusen und in nachfolgenden Workflows Secrets stehlen sowie internen Zugriff erlangen
- Prominente potenzielle Ziele:
Reaktion und Patch von GitHub
- Nach Meldung der Schwachstelle am 22. Januar 2025 hat GitHub innerhalb von 3 Stunden:
- den verwundbaren Workflow gestoppt
- einen PR zur Verhinderung des Uploads von Secrets eingereicht
- eine gepatchte Version veröffentlicht: CodeQL Action v3.28.3
- Offizielle Sicherheitswarnung: GHSA-vqf5-2xx6-9wfm
Gegenmaßnahmen
- Beim Hochladen von Artefakten in Workflows sollten die hochzuladenden Dateien eingeschränkt werden
- Vorsicht bei Umgebungsvariablen sowie Dateien in
.git/configund im Verzeichnis_temp/ GITHUB_TOKENsollte nur mit Leserechten versehen werden- Vor dem Upload wird ein Secret-Scan empfohlen (mit Tools wie
Nosey Parker)
Fazit
- Schon mit der Standardkonfiguration von CodeQL können zahlreiche Projekte Lieferkettenangriffen ausgesetzt sein
- Sicherheitslücken in GitHub Actions bleiben eine ernste Bedrohung, und die Community braucht weiterhin Aufmerksamkeit und Abwehrstrategien
Weiterführende Informationen
- CVE-Informationen: CVE-2025-24362
- PoC-Branch: testpoc
- Commit-Link: Commit
- Tag-Link: Tag
1 Kommentare
Hacker-News-Kommentare