
استغلال إثبات مفهوم بلغة Python للثغرة CVE-2026-92592، وهي تنفيذ أوامر عن بُعد (RCE) بعد المصادقة في Craft CMS تستغل ملفات تعريف ارتباط موقّعة خاصة بتجاهل الترخيص (license-shun) لتنفيذ حمولات Twig وتشغيل الأوامر.
إثبات مفهوم لـ CVE-2026-92592 / GHSA-5r92-75j8-c534. تقوم Craft بتوقيع بيانات يتحكم بها المهاجم في ملف تعريف الارتباط license-shun الموثّق باستخدام نفس المفتاح والتنسيق المستخدمين لإعادة توجيه تسجيل الدخول الموقّعة. يؤدي إعادة استخدام تلك القيمة الموقّعة كـ redirect إلى جعل Craft يعرضها كـ Twig غير معزول (unsandboxed)، مما يسمح بتنفيذ الأوامر عبر سلوك map('system') في Twig.
Craft CMS 4.8.0 حتى 4.18.5 و5.0.0 حتى 5.10.12 متأثرة. قم بالترقية إلى 4.18.6 أو 5.10.13 أو أحدث. Craft 5.9.8 متأثرة.
استخدم هذا فقط ضد الأنظمة التي تملكها أو لديك تصريح باختبارها.
requestscookieValidationKey وsecurityKey في Craftsystem() وsh وbase64 على الهدفأنشئ بيئة معزولة وثبّت حزمة Python:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install requests
شغّل الاستغلال مع عنوان URL الهدف واسم المستخدم وكلمة المرور والأمر:
python3 craftcms_rce.py \
-t https://craft.example \
-u author \
-p 'password' \
'id'
قد تكون كلمات المرور الممررة عبر سطر الأوامر مرئية في سجل الصدفة وقوائم العمليات. استخدم بيانات اعتماد اختبار مؤقتة. مرّر --proxy لوكيل تصحيح أخطاء HTTP و--insecure فقط عندما يستخدم الهدف شهادة لا يمكن التحقق منها.
يتم دمج مخرجات stdout وstderr للأمر وطباعتها إلى stdout. شغّل python3 craftcms_rce.py --help لعرض جميع الخيارات.
app/set-license-shun-cookie ويلتقط قيمة ملف تعريف الارتباط الموقّعة من Craft.redirect في طلب تسجيل دخول آخر.