
إثباتات المفهوم (POCs) لـ CVE-2026-32604 و CVE-2026-32613 والتي تسمح بتنفيذ الأوامر عن بُعد (RCE) بعد المصادقة وسرقة بيانات الاعتماد في Spinnaker
عروض توضيحية لإثبات المفهوم لـ CVE-2026-32604 و CVE-2026-32613، وهما ثغرتان بدرجة خطورة 10.0 في Spinnaker تسمحان بتنفيذ الأكواد وسرقة بيانات اعتماد السحابة الإنتاجية.
تمرر نقطة نهاية جلب القطع الأثرية في Clouddriver اسم الفرع المقدم من المستخدم دون تعقيم إلى أمر sh -c عند استخدام مصادقة git المستندة إلى HTTP. يمكن لأي مستخدم مصادق حقن أوامر شل عبر PUT /artifacts/fetch، مما يحقق تنفيذًا عشوائيًا للأكواد على مضيف Clouddriver — الخدمة التي تحتفظ بجميع بيانات اعتماد مزود السحابة. لا تتطلب أي أدوار أو صلاحيات خاصة تتجاوز كون المستخدم مصادقًا.
يقوم Echo بتقييم تعريفات القطع الأثرية المتوقعة باستخدام لغة تعبير Spring (SpEL) مع غير مقيد عند إطلاق مشغل خط أنابيب. يمكن للمهاجم الذي لديه صلاحيات كتابة على أي تطبيق حفظ خط أنابيب يحتوي على تعبير SpEL خبيث، ثم إطلاق مشغل webhook للحصول على تنفيذ عشوائي للأكواد على خدمة Echo. تستخدم كل نقاط تقييم SpEL الأخرى في Spinnaker سياقًا محصنًا؛ هذه هي النقطة الوحيدة التي لا تستخدمه.
StandardEvaluationContextsetup/ — إعداد بيئة تلقائي. يستنسخ شجرة مصدر Spinnaker، ويبني جميع الخدمات من المصدر، ويقيم مجموعة مهيأة بالكامل (Gate, Orca, Clouddriver, Front50, Fiat, Echo) مع البنية التحتية الداعمة (Redis, MySQL, Elasticsearch, Minio, OpenLDAP). يتضمن بيانات أولية مع تطبيقات ومستخدمين وخطوط أنابيب للاختبار.
pocs/ — سكربتات الاستغلال. يتصل كل إثبات بـ Gate، ويجهز الهجوم، ويُسقط المستخدم في قشرة عكسية تفاعلية على حاوية الخدمة المستهدفة.
clouddriver_rce_via_git_clone.py — حقن أوامر شل عبر Git cloneecho_rce_via_spel.py — تنفيذ الأكواد عن بُعد عبر SpEL في expectedArtifactsالمتطلبات الأساسية: Docker, Git, Python 3.10+، و uv.
cd setup
./setup.sh
أول تشغيل يستنسخ مصدر Spinnaker ويبني جميع الخدمات (~20-30 دقيقة حسب الجهاز). عمليات التشغيل اللاحقة تعيد استخدام البناء المخزن مؤقتًا وتبدأ في غضون دقائق.
عند اكتمال الإعداد، يطبع تفاصيل البيئة الكاملة (عناوين الخدمات، وبيانات الاعتماد، وأوامر الإثبات المثال). اتبع تلك التعليمات لتشغيل الإثباتات.
لإيقاف التشغيل:
cd setup
./teardown.sh