- Eine populäre GitHub Action zur Nachverfolgung von Änderungen in jedem Branch wurde kompromittiert; über einen manipulierten Commit wurde versucht, CI/CD-Secrets offenzulegen
- 23.000 Repos sind betroffen, GitHub hat diese Action entfernt und sie ist nicht mehr nutzbar
- Durch eine alternative Action ersetzen und prüfen, ob Secrets in öffentlichen Workflow-Logs offengelegt wurden; danach ist eine Schlüsselrotation zwingend erforderlich
- Harden-Runner von StepSecurity entdeckte den Vorfall, und die sicherheitsgehärtete Alternative step-security/changed-files wird kostenlos bereitgestellt
Zusammenfassung des Vorfalls
- tj-actions/changed-files wird in über 23.000 Repositories verwendet und wurde kompromittiert
- Die Angreifer änderten den Action-Code und verwiesen Version-Tags auf einen bösartigen Commit um
- Dadurch wurden CI/CD-Secrets in GitHub-Actions-Build-Logs ausgegeben
- In öffentlichen Workflow-Logs könnten Secrets offengelegt worden sein
- Harden-Runner entdeckte das Problem nach der Erkennung eines unerwarteten Endpunkts
- Ein bösartiges Python-Skript sorgte dafür, dass Secrets aus dem Runner-Worker-Prozess ausgelesen wurden
- Alle Tags wurden auf denselben bösartigen Commit-Hash gesetzt (
0e58ed8671d6b60d0890c21b07f8835ace038e67)
Maßnahmen von GitHub
- GitHub hat die Action tj-actions/changed-files entfernt und ihre Nutzung gestoppt
- Die offizielle CVE ist CVE-2025-30066
So geht die Wiederherstellung
-
1. Die von StepSecurity bereitgestellte sichere Ersatz-Action verwenden
- Die Action
tj-actions/changed-files durch step-security/changed-files@v45 ersetzen
-
2. Alle Verweise auf tj-actions/changed-files entfernen
-
3. Ausführungs-Logs von GitHub-Actions-Workflows prüfen
- In den jüngsten Ausführungs-Logs prüfen, ob Secrets abgeflossen sind
- Wenn offengelegte Secrets gefunden werden, müssen sie sofort rotiert (zurückgesetzt) werden
-
4. Allowlist für GitHub Actions einrichten
- Eine Allowlist so konfigurieren, dass nur vertrauenswürdige GitHub Actions ausgeführt werden:
- Die Option kann in den GitHub-Einstellungen aktiviert werden:
- Settings → Actions → Allow select actions
-
5. StepSecurity Harden-Runner konfigurieren
- In Harden-Runner kann die Überwachung von Netzwerkverkehr und Workflow-Ausführungen eingerichtet werden
Nächste Schritte
- Problem an GitHub gemeldet → GitHub-Issue: #2463
- Das Repository tj-actions/changed-files wurde gelöscht
- Offiziell als CVE-2025-30066 erfasst
- Mit StepSecurity Harden-Runner lassen sich ähnliche Sicherheitsprobleme erkennen und verhindern
- Zur Stärkung des Sicherheitsstatus und für Echtzeitüberwachung wird die Konfiguration von Harden-Runner empfohlen
2 Kommentare
Gestern Nacht funktionierte es nicht, aber jetzt geht es wieder.
Hacker-News-Kommentare
Der Autor und Maintainer von Renovate erklärt das Angriffsszenario
tj-actions/changed-filesIn den letzten Jahren ist das Vertrauen in Abhängigkeiten und Erweiterungen von Drittanbietern gesunken
Das Repository ist wieder online, und der Entwickler hat eine Erklärung geliefert
In ClickHouse wurden
github_eventsuntersucht, um die beim Angriff verwendeten Accounts zu identifizierenEs ist schockierend, dass CI/CD offenbar so ausgeführt wird, dass beliebige GitHub-Repositories eingebunden werden
Der Mitgründer von StepSecurity erklärt, wie der Sicherheitsvorfall erkannt wurde
Problematisch ist, dass GitHub Actions standardmäßig mit nicht unveränderlichen Git-Tags verwendet werden
Unveränderliche GitHub Actions sollen eingeführt werden
Das Projekt maven-lockfile erklärt den automatisch gemergten PR
GitHub Actions sollten für Abhängigkeiten ein Lockfile verwenden