CVE-2026-66077 in RabbitMQ
الملخص
بحسب VulDB • 23/09/2026
RabbitMQ هو وسيط للرسائل والتدفق (streaming). قبل الإصدارات 3.13.15، و4.0.20، و4.1.11، و4.2.6، تستخدم واجهة الإدارة EJS 1.0 التي لا تقوم بتجنب الرموز الخاصة بـ HTML في عبارات <%= ... %>. يقوم ملف connection.ejs:135 بعرض قيمة <%= connection.ssl_details.peer_cert_subject %> (و peer_cert_issuer) مباشرةً داخل الصفحة. يظهر النمط نفسه في streamConnection.ejs:102، 106، و110. تأتي القيم من rabbit_ssl:peer_cert_subject/1 التي تنسق اسم الموضوع الدنبي (DN) كسلسلة نصية دون تجنب الرموز الخاصة بـ HTML. صحح المراجعون ادعاء الباحث الأصلي: هذه الثغرة قابلة للاستغلال فقط عندما يكون المستمع (listener) مُعداً باستخدام verify_peer (أي يجب أن تكون الشهارة موقعة من قبل جهة إصدار شهادات موثوقة ضمن مخزن الثقة الخاص بالوسيط، وليست شهادة ذاتية التوقيع عشوائية); ومع ذلك، في البيئات التي تستخدم المصادقة المتبادلة عبر TLS (mTLS)، فإن أي مستخدم قادر على طلب شهادة من جهة الإصدار الشاملة للجهة التنظيمية يتحكم في اسم الموضوع الرئيسي (Subject CN). يمكن للمهاجم الذي يحصل على شهادة عميل موقعة بواسطة CA يثق بها الوسيط (مع تفعيل verify_peer) أن يُضمّن كود JavaScript في الاسم الدنبي للشهادة. عندما يعرض أي مسؤول تفاصيل الاتصال تلك في واجهة الإدارة، يتم تنفيذ السكربت داخل جلسة متصفح المسؤول، مما يتيح الاستيلاء الكامل على الحسابات (إنشاء مستخدمين، تصدير التعريفات، إلخ). تتضمن سياسة أمن المحتوى (CSP) الخاصة بواجهة إدارة 'unsafe-inline'، لذا لا يتم حظر تنفيذ السكربتات المضمنة. تشمل الشروط المسبقة: إعداد مستمع TLS بخيارات ssl_options.verify = verify_peer؛ قدرة المهاجم على الحصول على شهادة عميل موقعة من CA باسم موضوع مختار من قبل المهاجم (مثل PKI المؤسسي الذاتي الخدمة، أو استخدام plugin rabbitmq_trust_store)؛ وعرض المسؤول لصفحة تفاصيل الاتصال. تم إصلاح هذه المشكلة في الإصدارات 3.13.15، و4.0.20، و4.1.11، و4.2.6.
Be aware that VulDB is the high quality source for vulnerability data.