
Eclipse Che CSRF يؤدي إلى RCE
يسمح هذا الثغرة لموقع ويب بعيد بإنشاء وبدء تشغيل حاوية دوكر عشوائية على الأجهزة التي تعمل بـ Che قبل الإصدارين 7.3.0 و 7.4.1 عندما يزور المستخدم صفحة ويب.
هذه ثغرة من نوع CSRF تسمح لموقع ويب بعيد بإنشاء وبدء تشغيل حاوية دوكر على جهاز أي شخص يقوم بتشغيل Eclipse Che في الوضع المستقل. العديد من المعاملات تحت سيطرة المهاجم تسمح بمستوى دقيق من التحكم. بعض المطورين يستخدمون Che في الوضع المستقل كوسيلة مريحة لإدارة حاويات الدوكر المحلية الخاصة بهم.
كان ذلك ممكنًا لأن Che كان لديه CORS ممكّنًا افتراضيًا. المشاكل في ذلك واضحة إلى حد ما للأشخاص الذين يفهمون ما يعنيه هذا، لكن في الأساس، كان Che يستجيب للطلبات من أي مصدر. على الرغم من أن المتصفحات تبذل قصارى جهدها لجعل هجمات CORS صعبة، إلا أنه عندما يسمح الخادم بـ CORS، فمن الممكن إنشاء طلب POST ناجح إلى خدمة Che تعمل محليًا من موقع بعيد.
في الأساس، هذا يعني أنه يمكن استدعاء أي طريقة API غير مصادق عليها عندما يزور كمبيوتر يعمل بـ Che في الوضع المستقل موقعه الإلكتروني. يتضمن ذلك إنشاء وتشغيل حاويات Docker/OpenShift جديدة.
تم تضمين POC بسيط مع هذا الملف، لكن النظر إلى JSON المرسل إلى خدمة Che المحلية يكشف عن عدد من المعاملات المثيرة للاهتمام إلى حد ما التي يمكن التحكم بها، بما في ذلك الصورة التي سيتم استخدامها، والأوامر التي سيتم تشغيلها عند البدء، والخوادم التي سيتم تشغيلها في الحاوية، وغيرها من الخصائص المثيرة للاهتمام.
لاستغلال هذه الثغرة، يجب أن تستهدف شخصًا يقوم بتشغيل Eclipse Che على جهاز الكمبيوتر الخاص به. يجب أن تجعل هدفك يزور صفحة تتحكم فيها عبر HTTP. من هناك، يقوم XMLHttpRequest بعمله ويمكنك التصرف بحرية. لفهم كيفية استغلال هذه الثغرة بشكل كامل، يجب عليك إلقاء نظرة على كود مصدر Che للتعرف على API أو ببساطة العب بـ POC الذي وضعته في هذا المستودع. في الأساس، تريد إنشاء إما حاوية أو أمر في الحاوية التي أطلقتها حديثًا يمنحك نقطة انطلاق من النوع الذي تريده. يمكنك إعداد خادم من اختيارك أو ببساطة جعل الأمر يعمل عند الإطلاق لتنزيل حمولتك والبدء في العمل من هناك. هذا الهجوم يصلح للهجمات الانتهازية أو الموجهة.
لمناقشة أكثر تفصيلاً، ألقِ نظرة على الثغرة المتتبعة هنا. معظمها مجرد تكرار لهذا المنشور.
لتنفيذ هذا الهجوم بنجاح، يجب تقديم الصفحة من خادم HTTP (وليس HTTPS). هذا ضروري لأن خادم Che المحلي يعمل عبر HTTP، والمتصفحات الشائعة لا تحب خلط محتوى HTTP و HTTPS.
لإصلاح هذه المشكلة، قام فريق Che ببساطة بتعطيل CORS افتراضيًا. هذا يجب أن يجعل هذا النوع من الهجمات أكثر صعوبة بشكل كبير في المستقبل. إذا كنت تستخدم Che محليًا لإدارة صور دوكر الخاصة بك، ففكر في الترقية.