
تنفيذ التعليمات البرمجية عن بُعد في Mediawiki Score
CVEID: CVE-2020-29007
اسم المنتج (المنتجات) المتأثرة والإصدارات: Mediawiki Score (جميع الإصدارات حتى 0.3.0)
نوع المشكلة: CWE-96: تحييد غير صحيح للتوجيهات في الكود المحفوظ بشكل ثابت ('حقن كود ثابت')
الملخص
Score هي إضافة لميدياويكي تقوم بتوليد النوتة الموسيقية بناءً على ترميز Lilypond أو ABC المقدم من المستخدم. خلال اختباراتنا، قررنا أنها عرضة لتنفيذ التعليمات البرمجية عن بُعد من خلال كود Scheme المضمن في ترميز Lilypond.
جميع إصدارات Score (حتى الإصدار 0.3.0 شاملاً) تسمح بتنفيذ كود عشوائي يتحكم به المستخدم ضمن سياق عملية خادم الويب.
الوصف
إضافة Score تقوم بتوليد النوتة الموسيقية عن طريق تمرير ترميز Lilypond أو ABC الذي يتحكم به المستخدم إلى ثنائي GNU Lilypond. نظرًا لأن الثنائي يتم تنفيذه بدون خيار -dsafe، فسيقوم بتنفيذ كود Guile Scheme العشوائي المضمن داخل ترميز Lilypond، بما في ذلك الكود الذي يتفاعل مع شل نظام التشغيل.
لاستغلال هذه الثغرة، يجب أن يكون المهاجم قادرًا على تعديل أي مقالة على الويكي المعرضة للخطر. في معظم التهيئات، يجب أن يكون ذلك ممكنًا للمهاجم غير الموثوق.
إعادة الإنتاج
ابدأ بتعديل أي مقالة على الويكي.
استبدل محتويات المقالة بالكود التالي:
{{Image frame|content=\new Staff <<{g^#
(number->string(system "/usr/bin/false"))
}>>}}
انقر على 'عرض المعاينة'
إذا كان الإخراج يحتوي على صورة تبدو هكذا، فإن الويكي معرضة للخطر:

التخفيف
قم بتعطيل إضافة Score.