
Jenkins POC لضعف قراءة الملفات التعسفية عبر CLI يمكن أن يؤدي إلى RCE
يحتوي Jenkins على واجهة سطر أوامر مدمجة (CLI) للوصول إلى Jenkins من بيئة سكريبت أو شل.
يستخدم Jenkins مكتبة args4j لتحليل وسائط وخيارات الأوامر على وحدة التحكم Jenkins عند معالجة أوامر CLI. يحتوي محلل الأوامر هذا على ميزة تستبدل الحرف @ متبوعًا بمسار ملف في الوسيطة بمحتويات الملف (expandAtFiles). هذه الميزة مفعلة افتراضيًا ولا تقوم Jenkins 2.441 والإصدارات الأقدم، وLTS 2.426.2 والإصدارات الأقدم بتعطيلها.
يسمح هذا للمهاجمين بقراءة ملفات عشوائية على نظام ملفات وحدة تحكم Jenkins باستخدام ترميز الأحرف الافتراضي لعملية وحدة التحكم Jenkins.
يمكن للمهاجمين الذين لديهم إذن Overall/Read قراءة الملفات بأكملها.
يمكن للمهاجمين الذين ليس لديهم إذن Overall/Read قراءة الأسطر القليلة الأولى من الملفات. يعتمد عدد الأسطر التي يمكن قراءتها على أوامر CLI المتوفرة. اعتبارًا من نشر هذا التنبيه، وجد فريق أمان Jenkins طرقًا لقراءة الأسطر الثلاثة الأولى من الملفات في الإصدارات الحديثة من Jenkins دون تثبيت أي إضافات، ولم يحدد أي إضافات من شأنها زيادة عدد الأسطر.
Fix Description: Jenkins 2.442, LTS 2.426.3 تعطل ميزة محلل الأوامر التي تستبدل الحرف @ متبوعًا بمسار ملف في الوسيطة بمحتويات الملف لأوامر CLI.
في حالة وجود مشكلات مع هذا الإصلاح، قم بتعطيل هذا التغيير عن طريق تعيين خاصية نظام Java hudson.cli.CLICommand.allowAtSyntax إلى true. يُنصح بشدة بعدم القيام بذلك على أي شبكة يمكن الوصول إليها من قبل مستخدمين ليسوا مدراء Jenkins.
Workaround: من المتوقع أن يؤدي تعطيل الوصول إلى CLI إلى منع الاستغلال تمامًا. يُوصى بشدة بذلك للمسؤولين غير القادرين على التحديث الفوري إلى Jenkins 2.442, LTS 2.426.3. لا يتطلب تطبيق هذا الحل البديل إعادة تشغيل Jenkins.
More info at: https://www.jenkins.io/security/advisory/2024-01-24/#SECURITY-3314
الأمر للتشغيل: python CVE-2024-23897 Jenkins.py -l list.txt -f /etc/passwd
قد يحتوي رد إخراج VULN على أكثر من daemon أو bin، أضفه في السطر 28 إذا كنت ترغب في إضافة المزيد.