Warnung: Jenkins-Schwachstellen öffnen Server für RCE-Angriffe
Jenkins, eine einflussreiche Java-basierte Open-Source-Automatisierungsplattform, die für ihr umfangreiches Plugin-Ökosystem und ihre kontinuierlichen Integrationsfunktionen bekannt ist, hat vor kurzem eine Reihe von Schwachstellen in ihren Angeboten aufgedeckt. Eine besonders kritische Sicherheitslücke, die das Potenzial für Remote Code Execution (RCE) Angriffeist ans Licht gekommen und erfordert dringende Aufmerksamkeit. In diesem Blog befassen wir uns mit den kritischen Implikationen der Jenkins-Sicherheitslückenund beleuchten die komplexe Natur der Sicherheitsrisiken, die von der kürzlich bekannt gewordenen RCE-Schwachstelle CVE-2024-23897 ausgehen.
Jenkins-Schwachstellen aufgedeckt
Die Schwachstelle in Jenkins, die unter CVE-2024-23897 mit einem Schweregrad von 9.8 geführt wird, ist auf ein Problem beim Lesen beliebiger Dateien zurückzuführen, das die integrierte Befehlszeilenschnittstelle (CLI) betrifft. Dieses CLI, das für den Zugriff auf Jenkins von Skript- oder Shell-Umgebungen aus verwendet wird, nutzt die args4j-Bibliothek zum Parsen von Befehlen.
Genauer gesagt, eine Funktion namens "expandAtFiles" im Parser ersetzt das "@" Zeichen gefolgt von einem Dateipfad durch den Inhalt der Datei. Diese Funktion ist in den Jenkins-Versionen standardmäßig aktiviert 2.441 und früher, LTS 2.426.2 und früher, aktiviert und dient als möglicher Einstiegspunkt für Angreifer, um beliebige Dateien im Dateisystem des Jenkins-Controllers zu lesen.
Auspacken der Risiken
Die Sicherheitslücke CVE-2023-23897 ermöglicht es potenziellen Angreifern mit der Berechtigung Overall/Read, ganze Dateien zu lesen. Auch ohne diese Berechtigung können Angreifer auf die ersten paar Zeilen zugreifen, wobei die Anzahl der Zeilen durch die verfügbaren CLI-Befehle bestimmt wird. Insbesondere können Binärdateien, die kryptografische Schlüssel enthalten, unter bestimmten Einschränkungen gelesen werden.
Neben dem Lesen von Dateiinhalten hat Jenkins mögliche Angriffsszenarien skizziert, die Angreifer ausnutzen könnten, um über diese Schwachstelle RCE zu erreichen. Es ist wichtig zu betonen, dass diese Angriffe nur möglich sind, wenn Angreifer kryptografische Schlüssel von Binärdateien erhalten können.
Potenzielle Angriffsvektoren
Verstehen der Wege, über die Angreifer Schwachstellen in Open-Source-Software ausnutzen können Schwachstellen in Open-Source-Software ist entscheidend für eine effektive Verteidigung. Im Folgenden werden mehrere potenzielle Angriffsvektoren untersucht, die Angreifer nutzen können, um die Jenkins-RCE-Schwachstelle (CVE-2024-23897) auszunutzen.
- RCE über Ressource-Root-URLs: Für diesen Exploit muss die Resource Root URL-Funktionalität aktiviert sein. In der ersten Variante verwenden die Angreifer den CLI-WebSocket-Endpunkt und müssen den Benutzernamen eines Benutzers mit der Berechtigung "Overall/Read" kennen oder erraten können. Die zweite Variante erfordert den Besitz eines API-Tokens für ein nicht anonymes Benutzerkonto, wobei die Berechtigung "Overall/Read" keine Voraussetzung ist.
- RCE über "Erinnere mich" Cookie: Angreifer können ein "Remember me" -Cookie fälschen, um sich über einen Webbrowser bei Jenkins anzumelden, Zugriff auf die Skriptkonsole zu erhalten und ein Cookie für ein Administratorkonto zu manipulieren. Dieser Exploit erfordert die Aktivierung der "Remember me" -Funktion und die Berechtigung "Overall/Read", um auf Inhalte jenseits der ersten Zeilen in Dateien zuzugreifen.
- RCE über gespeicherte Cross-Site-Scripting (XSS)-Angriffe durch Build-Protokolle: Angreifer können XSS-Angriffe ausführen, indem sie über gefälschte serialisierte Konsolennotizobjekte beliebigen HTML- und JavaScript-Code in Build-Protokolle einspeisen. Eine erfolgreiche Ausnutzung hängt von der Kontrolle des Angreifers über die Ausgabe von Build-Logs ab, die typischerweise durch Mechanismen wie Pull-Requests erreicht wird.
- RCE über Umgehung des CSRF-Schutzes: Durch die Verwendung gefälschter CSRF-Tokens ("Crumbs") können Angreifer CSRF-Angriffe durch die Übermittlung von POST-Anfragen mit einem gültigen Crumb durchführen.
Jenkins für die Sicherheit patchen
Schutz gegen Cyber-Bedrohungen für CI/CD-Systeme erfordert einen umfassenden Ansatz, der sich mit Schwachstellen in jeder Phase der Entwicklungspipeline befasst. Dem SonarSource-Sicherheitsforscher Yaniv Nizry gebührt Anerkennung für die Entdeckung und Meldung der Schwachstelle am 13. November 2023.
Das Problem wurde in Jenkins 2.442 und LTS 2.426.3 behoben, wo die Befehlsparserfunktion als vorbeugende Maßnahme deaktiviert wurde. Als kurzfristige Abhilfe, bis der Patch eingespielt werden kann, wird dringend empfohlen, den Zugriff auf die Befehlszeile vorübergehend zu deaktivieren.
Frühere Jenkins-Schwachstellen
Diese Entwicklung kommt fast ein Jahr, nachdem Jenkins schwerwiegende Sicherheitslücken, bekannt als CorePlague (CVE-2023-27898 und CVE-2023-27905), behoben hat, und unterstreicht das kontinuierliche Engagement der Plattform für Jenkins-Instanzen zu sichern.
Die Situation wird immer dringlicher, Proof-of-Concept (PoC) Exploits für CVE-2024-23897 wurden nach Bekanntwerden der Schwachstelle auf GitHub veröffentlicht. Die Benutzer werden dringend aufgefordert, ihre Jenkins-Installationen umgehend auf die neueste Version zu aktualisieren, um mögliche Server-Sicherheitsrisiken.
Schlussfolgerung
Zusammenfassend lässt sich sagen, dass die Schwachstellen von Jenkins erfordern die sofortige Aufmerksamkeit der Gemeinschaft. Die Risiken zu verstehen, die empfohlenen Korrekturen zu implementieren und über Sicherheitsaktualisierungen auf dem Laufenden zu bleiben, ist von größter Bedeutung. Cybersicherheit bei der kontinuierlichen Integration ist für die Gewährleistung der Integrität und Sicherheit von Softwareentwicklungsprozessen von größter Bedeutung.
In einer Landschaft, in der sich Cyber-Bedrohungen ständig weiterentwickeln, spielen proaktive Maßnahmen eine entscheidende Rolle beim Schutz der Integrität und Sicherheit von Jenkins-Anlagen. Zur Minderung der Risiken von Exploits gegen Jenkins-Serverzu minimieren, ist es wichtig, Sicherheits-Patches zeitnah zu installieren und proaktive Sicherheitsmaßnahmen.
Zu den Quellen für diesen Beitrag gehören Artikel in den Hacker-Nachrichten und SOCRadar.