
يوفر هذا المستودع حلاً بديلاً يمنع استغلال SECURITY-3430 / CVE-2024-43044
هذا وكيل Java للاستخدام مع وحدات تحكم Jenkins التي لا تتضمن إصلاح SECURITY-3430 (أي حتى الإصدار 2.470 و LTS 2.452.3 ضمنًا).
يقوم بتحويل تعريف الفئة التي تحتوي على ثغرة SECURITY-3430 لمنع استغلالها. إذا فشل ذلك لسبب ما، يتم إيقاف Jenkins قسرًا.
سيقوم هذا الحل المؤقت بحظر ClassLoaderProxy#fetchJar تمامًا، وبالتالي فهو غير متوافق مع الوظيفة المتأثرة بالمكونات الإضافية المذكورة في النشرة الأمنية، على عكس الإصلاح المعتاد.
تم اختبار هذا الحل المؤقت بنجاح مع عدة إصدارات حديثة من Jenkins خلال السنوات القليلة الماضية.
تحذير: نظرًا لطريقة عمل هذا الحل المؤقت، نوصي بشدة بأخذ نسخ احتياطية من Jenkins بانتظام، ونشر الحل المؤقت بشكل تدريجي.
حماية عملية التحكم في Jenkins من الاستغلال:
java -javaagent:/path/to/security3430-workaround.jar -jar jenkins.war
طبّق التحويل على ملف الفئة RemoteClassLoader$ClassLoaderProxy.class المحدد واكتب النتيجة إلى ملف مختلف:
java -jar /path/to/security3430-workaround.jar <source file> <target file>
يمكن استخدام ذلك لإنشاء ملفات remoting.jar معدّلة بأدنى حد.
يمكن ضبط خاصيتين من خصائص نظام Java لتغيير سلوك هذا العامل Java:
io.jenkins.security.Security3430Workaround.DISABLE:
اضبطها على true لتعطيل تحويل الفئة.io.jenkins.security.Security3430Workaround.SKIP_SHUTDOWN:
اضبطها على true لعدم إيقاف عملية Jenkins عند فشل تحويل الفئة.
يُنصح بها فقط في حالات محددة وضيقة، مثل المراقبة الدقيقة لرسائل السجل (انظر أدناه).يجب ضبط كلتيهما قبل تحميل الفئة وقبل محاولة التحويل، ويفضّل أن يكون ذلك كخيار سطر أوامر -D.
تستخدم رسائل السجل مسجّل io.jenkins.security.Security3430Workaround.
تشير الرسائل المسجّلة بمستوى SEVERE إلى فشل في التحويل.
شغّل الكود التالي في وحدة تحكم البرامج النصية لعامل Jenkins المتصل لتأكيد فعالية هذا الحل المؤقت:
def cl = Thread.currentThread().getContextClassLoader().proxy
cl.fetchJar(new URL('file:/path/to/jenkins/home/secrets/master.key'))
بدون الإصلاح أو الحل المؤقت، ستتم طباعة رسالة مثل التالية، مما يشير إلى نجاح الاستغلال: Result: [B@23edd8a0
مع تطبيق هذا الحل المؤقت، سيتم إلقاء AbstractMethodError وطباعة تتبّع مكدس طويل.
مرخّص بموجب شروط رخصة MIT. حقوق الطبع والنشر 2024 شركة CloudBees, Inc.