CVE-2024-23897
Jenkins Command Line Interface (CLI) Path Traversal Vulnerability
Beschreibung
CVE-2024-23897 ist eine kritische Schwachstelle (CVSS 9.8 CRITICAL) in der Jenkins Command Line Interface (CLI), die das Lesen beliebiger Dateien auf dem Jenkins-Controller ermöglicht. Jenkins 2.441 und früher sowie LTS 2.426.2 und früher deaktivieren ein Feature des CLI-Befehlsparsers nicht, das ein @-Zeichen gefolgt von einem Dateipfad durch den Dateiinhalt ersetzt. Dies ermöglicht nicht authentifizierten Angreifern, sensitive Dateien wie Kryptoschlüssel, Zugangsdaten und Quellcode vom Jenkins-Server auszulesen. Die Schwachstelle ist im CISA KEV-Katalog gelistet und wird nachweislich in Ransomware-Angriffen eingesetzt. Der EPSS-Score von 0.94466 (100. Perzentil) ist der höchstmögliche.
KEV-Informationen
CVSS-Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HIm Rechner öffnenBetroffene Produkte
| Hersteller | Produkt | Version |
|---|---|---|
| jenkins | jenkins | < 2.426.3; < 2.442 |
Mehrere CVSS-Bewertungen
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Referenzen
- http://packetstormsecurity.com/files/176839/Jenkins-2.441-LTS-2.426.3-CVE-2024-23897-Scanner.html(Third Party Advisory, VDB Entry)
- http://packetstormsecurity.com/files/176840/Jenkins-2.441-LTS-2.426.3-Arbitrary-File-Read.html(Exploit, Third Party Advisory, VDB Entry)
- http://www.openwall.com/lists/oss-security/2024/01/24/6(Mailing List)
- https://www.jenkins.io/security/advisory/2024-01-24/#SECURITY-3314(Vendor Advisory)
- https://www.sonarsource.com/blog/excessive-expansion-uncovering-critical-security-vulnerabilities-in-jenkins/(Exploit, Press/Media Coverage)
- https://www.vicarius.io/vsociety/posts/the-anatomy-of-a-jenkins-vulnerability-cve-2024-23897-revealed-1(Exploit, Third Party Advisory)
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2024-23897(US Government Resource)
Schwachstellentyp
Für CVE-2024-23897 wurde keine spezifische CWE-Nummer zugewiesen, jedoch basiert die Schwachstelle auf einem Argument Injection / File Read via CLI Parser Feature. Der Jenkins CLI-Befehlsparser verwendet intern die Apache Commons CLI-Bibliothek (args4j), die ein Feature unterstützt, bei dem Argumente, die mit dem @-Zeichen beginnen, als Dateipfade interpretiert werden. Der Inhalt der referenzierten Datei wird dann als Wert des Arguments eingefügt. Jenkins deaktiviert dieses Feature nicht, wodurch Angreifer durch Übergabe von @/etc/passwd oder @/var/jenkins_home/secrets/master.key beliebige Dateien auf dem Server auslesen können. Dieses Feature ist als Komfortfunktion gedacht, um lange Argumentlisten aus Dateien zu laden, wird hier jedoch als Angriffsvektor missbraucht.
Auswirkungsanalyse
Die Auswirkungen von CVE-2024-23897 sind verheerend, insbesondere in CI/CD-Umgebungen. Vertraulichkeit (C:H): Angreifer können beliebige Dateien vom Jenkins-Controller lesen, einschliesslich des Master-Keys (zur Entschlüsselung aller gespeicherten Secrets), SSH-Schlüssel, API-Tokens, Build-Konfigurationen mit Zugangsdaten, und Quellcode. Der Zugriff auf den Master-Key ermöglicht die Entschlüsselung aller in Jenkins gespeicherten Credentials. Integrität (I:H): Mit den ausgelesenen Zugangsdaten können Angreifer die Jenkins-Instanz vollständig übernehmen, Build-Pipelines manipulieren und Supply-Chain-Angriffe durchführen. Verfügbarkeit (A:H): Die Kompromittierung eines Jenkins-Controllers kann zur Unterbrechung sämtlicher CI/CD-Prozesse führen. Der EPSS-Score von 0.94466 (100. Perzentil) ist der höchstmögliche Wert und bestätigt die massive Ausnutzung. Besonders kritisch ist die Bestätigung, dass diese Schwachstelle nachweislich in Ransomware-Angriffen (Known) eingesetzt wird. Jenkins-Server verwalten typischerweise Zugangsdaten zu Source-Code-Repositories, Cloud-Infrastrukturen und Produktionssystemen, weshalb eine Kompromittierung weitreichende Folgen hat.
Exploit-Reifegrad
CVE-2024-23897 ist eine der am intensivsten ausgenutzten Schwachstellen und wurde von der CISA in den KEV-Katalog aufgenommen, mit einer Behebungsfrist bis zum 9. September 2024. Der Ransomware-Status ist als Known bestätigt. Zahlreiche öffentliche Exploits sind verfügbar: Ein Arbitrary File Read Exploit auf PacketStorm, ein Scanner-Tool auf PacketStorm, eine detaillierte technische Analyse von SonarSource sowie ein weiterer Exploit und Analyse von Vicarius. Das offizielle Jenkins Security Advisory dokumentiert die Schwachstelle unter der Kennung SECURITY-3314. Der EPSS-Score von 0.94466 (100. Perzentil) reflektiert die maximale Ausnutzungswahrscheinlichkeit.
Behebung
-
Sofortiges Jenkins-Update: Aktualisieren Sie Jenkins auf Version 2.442 oder höher bzw. LTS 2.426.3 oder höher. Diese Versionen deaktivieren das @-Dateieinfüge-Feature des CLI-Parsers. Das Update ist über die offizielle Jenkins-Seite verfügbar.
-
CLI-Zugriff einschränken: Deaktivieren Sie als sofortige Mitigation den Jenkins CLI-Zugang, wenn er nicht benötigt wird. Beschränken Sie den Netzwerkzugang zum Jenkins-Server auf vertrauenswürdige IP-Adressen und implementieren Sie Authentifizierung für alle Endpunkte.
-
Secrets und Credentials rotieren: Nach dem Patching müssen alle in Jenkins gespeicherten Credentials als kompromittiert betrachtet und rotiert werden. Dies umfasst SSH-Schlüssel, API-Tokens, Cloud-Zugangsdaten, Datenbank-Passwörter und Repository-Zugangsdaten. Insbesondere der Jenkins Master-Key muss regeneriert werden.
-
Forensische Untersuchung: Überprüfen Sie Jenkins-Zugriffslogs auf verdächtige CLI-Anfragen, insbesondere solche die @-Zeichen in Argumenten enthalten. Prüfen Sie, ob Dateien wie /var/jenkins_home/secrets/master.key, /etc/passwd oder Build-Konfigurationen ausgelesen wurden.
-
Supply-Chain-Integrität prüfen: Verifizieren Sie die Integrität aller Jenkins-Build-Pipelines und Artefakte. Prüfen Sie, ob Build-Definitionen, Deployment-Skripte oder Pipeline-Konfigurationen manipuliert wurden, da ein kompromittierter Jenkins-Server als Angriffsvektor für Supply-Chain-Angriffe dient.
Technische Details
Der CVSS v3.1 Vektor für CVE-2024-23897 lautet CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H mit einem Score von 9.8 (CRITICAL). Angriffsvektor (AV:N): Der Angriff erfolgt über das Netzwerk via Jenkins CLI-Protokoll (Port 50000 oder über HTTP/WebSocket). Angriffskomplexität (AC:L): Die Ausnutzung ist trivial — ein einzelner CLI-Befehl reicht aus. Erforderliche Berechtigungen (PR:N): Keine Authentifizierung erforderlich; selbst anonyme Benutzer können die CLI nutzen, wenn sie nicht explizit deaktiviert wurde. Benutzerinteraktion (UI:N): Vollständig automatisierbar. Scope (S:U): Auf den Jenkins-Controller beschränkt, wobei die dort gespeicherten Credentials Zugang zu weiteren Systemen gewähren. Der Angriffsmechanismus ist elegant einfach: Jenkins verwendet die args4j-Bibliothek zum Parsen von CLI-Befehlen. Diese Bibliothek unterstützt ein Feature, bei dem ein Argument wie @/path/to/file automatisch durch den Inhalt der angegebenen Datei ersetzt wird. Wenn ein Angreifer den CLI-Befehl help @/etc/passwd sendet, versucht Jenkins, /etc/passwd zu lesen und den Inhalt als Befehlsname zu interpretieren. Die resultierende Fehlermeldung enthält dann den Dateiinhalt. Durch systematisches Auslesen von Jenkins-internen Dateien wie master.key, hudson.util.Secret und initialAdminPassword kann ein Angreifer die vollständige Kontrolle über den Jenkins-Server erlangen.
Häufig gestellte Fragen
Was ist CVE-2024-23897 und warum ist es so kritisch?
CVE-2024-23897 ist eine Arbitrary-File-Read-Schwachstelle in der Jenkins CLI, die es nicht authentifizierten Angreifern ermöglicht, beliebige Dateien vom Jenkins-Server zu lesen. Sie ist besonders kritisch, weil Jenkins als CI/CD-Plattform typischerweise Zugangsdaten zu zahlreichen Systemen speichert und nachweislich in Ransomware-Angriffen eingesetzt wird.
Wie wird die @-File-Read-Technik genau ausgenutzt?
Der Jenkins CLI-Parser interpretiert Argumente, die mit @ beginnen, als Dateipfade und ersetzt sie durch den Dateiinhalt. Ein Angreifer sendet beispielsweise den CLI-Befehl help @/var/jenkins_home/secrets/master.key. Jenkins liest die Datei, versucht den Inhalt als Befehl zu interpretieren, und gibt den Dateiinhalt in der Fehlermeldung zurück.
Sind meine Credentials nach dem Patching sicher?
Nein. Wenn Ihr Jenkins-Server vor dem Patching erreichbar war, müssen alle gespeicherten Credentials als kompromittiert betrachtet und rotiert werden. Der Jenkins Master-Key ermöglicht die Entschlüsselung aller Secrets. Regenerieren Sie den Master-Key und ändern Sie alle gespeicherten Passwörter, SSH-Schlüssel und API-Tokens.
Wird CVE-2024-23897 in Ransomware-Angriffen eingesetzt?
Ja, der KEV-Eintrag bestätigt den Ransomware-Status als Known. Jenkins-Server sind attraktive Ziele für Ransomware-Akteure, da sie als zentrale CI/CD-Plattform Zugang zu Quellcode, Cloud-Infrastrukturen und Produktionssystemen bieten. Die Kombination aus trivialem Exploit und weitreichendem Zugang macht CVE-2024-23897 zu einem bevorzugten initialen Angriffsvektor.
Hilfe beim Schwachstellenmanagement?
Unsere Sicherheitsexperten helfen Ihnen bei der Priorisierung und Behebung von Schwachstellen.