Die Entwickler der Open-Source-Software Jenkins haben neun Sicherheitslücken behoben, darunter eine kritische Schwachstelle, die eine Remote Code Execution (RCE) ermöglicht. Die Schwachstelle mit der CVE-Kennung CVE-2024-23897 wurde als beliebige Dateilese-Schwachstelle über die eingebaute Befehlszeilenschnittstelle (CLI) beschrieben. Jenkins verwendet die args4j-Bibliothek zur Analyse von Befehlsargumenten und Optionen auf dem Jenkins-Controller bei der Verarbeitung von CLI-Befehlen. Dieser Befehlsparser hat eine Funktion, die ein @-Zeichen gefolgt von einem Dateipfad in einem Argument durch den Inhalt der Datei ersetzt (expandAtFiles). Diese Funktion ist standardmäßig aktiviert und wird in Jenkins 2.441 und früheren Versionen nicht deaktiviert.

Ein Angreifer könnte diese Eigenart ausnutzen, um beliebige Dateien im Dateisystem des Jenkins-Controllers unter Verwendung der standardmäßigen Zeichenkodierung des Jenkins-Controller-Prozesses zu lesen. Angreifer mit „Overall/Read“-Berechtigungen können vollständige Dateien lesen, solche ohne diese Berechtigungen können je nach CLI-Befehlen die ersten drei Zeilen lesen. Darüber hinaus kann diese Schwachstelle dazu genutzt werden, binäre Dateien mit kryptografischen Schlüsseln zu lesen, wenn auch mit bestimmten Einschränkungen.

Jenkins warnt vor verschiedenen Angriffsszenarien wie Remote Code Execution über Resource Root URLs, Remote Code Execution über „Remember me“-Cookies, Remote Code Execution über gespeicherte Cross-Site-Scripting (XSS)-Angriffe in Build-Logs, Umgehen des Schutzes vor Cross-Site Request Forgery (CSRF), Entschlüsseln von in Jenkins gespeicherten Geheimnissen, Löschen von beliebigen Elementen in Jenkins und Herunterladen eines Java-Heap-Dumps.

Der Sicherheitsforscher Yaniv Nizry wird für die Entdeckung und Meldung der Schwachstelle anerkannt. Die Schwachstelle wurde in Jenkins 2.442 und LTS 2.426.3 behoben, indem die betroffene Befehlsparser-Funktion deaktiviert wurde. Bis zur Anwendung des Patches wird empfohlen, den Zugriff auf die CLI zu deaktivieren. Diese Entwicklung erfolgt fast ein Jahr, nachdem Jenkins zwei schwerwiegende Sicherheitslücken namens CorePlague (CVE-2023-27898 und CVE-2023-27905) behoben hat, die zu einer Codeausführung auf bestimmten Systemen führen können.