Kaltura: ثغرات حرجة غير مصححة تسمح بقراءة الملفات وتنفيذ الأكواد

كشف مركز CERT/CC عن ثغرتين غير مصححتين (CVE-2026-19913 وCVE-2026-19912) في مكتبة Kaltura للفيديو، تسمحان للمهاجمين بقراءة الملفات وتنفيذ الأكواد عن بُعد، بينما لا تزال الشركة صامتة.
مقدمة تحليلية
كشف مركز CERT Coordination Center (CERT/CC) بتاريخ 26 أغسطس 2026، عن ثغرتين حرجتين وغير مصححتين في مكتبة مشغل الفيديو HTML5 من Kaltura، تحملان المعرفين CVE-2026-19913 وCVE-2026-19912. تسمح هاتان الثغرتان، النابعتان من نفس مشكلة إلغاء التسلسل غير الآمن (unsafe deserialization) في نقطة النهاية `mwEmbedLoader.php` من مكتبة mwEmbed، للمهاجمين غير المصادق عليهم عن بُعد بقراءة أي ملفات من الخادم وتنفيذ الأكواد عليه. لا يتطلب استغلال أي من الثغرتين مصادقة أو رمز جلسة Kaltura، ويُعد الوصول الشبكي إلى نقطة النهاية الشرط الوحيد الذي ذكره CERT/CC. لم يتوفر أي تصحيح حتى تاريخ النشر، وأفاد CERT/CC أنه «لم يتمكن من الوصول إلى Kaltura لتنسيق معالجة هذه الثغرات»، مما يضع آلاف من منشآت العملاء وبنيات Kaltura التحتية المشتركة في خطر مباشر.
التحليل التقني
تتجسد الثغرتان، CVE-2026-19913 وCVE-2026-19912، في آلية إلغاء التسلسل المعيبة ضمن نقطة النهاية `mwEmbedLoader.php` التابعة لمكتبة mwEmbed، والتي توزعها Kaltura أيضاً تحت اسم html5lib. تستغل الثغرتان الاعتماد على معالج PHP `unserialize` دون تحقق كافٍ من المصدر أو المحتوى.
قراءة الملفات العشوائية (CVE-2026-19913)
تبدأ ثغرة قراءة الملفات، CVE-2026-19913، بمعامل `ServiceUrl` الذي تقبله `mwEmbedLoader.php` وتستخدمه كعنوان URL مستهدف لطلبات API الخلفية. يقوم عميل PHP `KalturaClientBase` بجلب ما يرجعه هذا العنوان ويمرره إلى `unserialize` الخاص بـ PHP دون التحقق من المصدر أو المخطط أو المحتوى. يؤدي توفير مسار `file://` إلى قيام الخادم بجلب ملف محلي بدلاً من استجابة API. تفشل محاولة إلغاء التسلسل بعد ذلك، وتنعكس البايتات الخام للملف الذي تم جلبه مرة أخرى إلى المُرسل ضمن رسالة الخطأ الناتجة.
صرح الباحث Gerjan Wemekamp من AndDone، الذي يُنسب إليه الفضل في الإبلاغ عن الثغرتين، في تقرير فني نُشر يوم الثلاثاء، بأنه قام بتصعيد قراءة الملفات عن طريق استرداد تكوين تطبيق Kaltura من `/opt/kaltura/app/configurations/local.ini`، والذي يحتوي على سلاسل اتصال قاعدة البيانات بوضوح، وكلمات مرور المسؤول والكونسول، ومراجع المضيفات الداخلية. سجل Wemekamp الثغرة بنتيجة 9.1 (مُقيّمة من المُبلغ).
تنفيذ الكود عن بُعد (CVE-2026-19912)
تُحوّل الثغرة الثانية، CVE-2026-19912، نفس آلية إلغاء التسلسل إلى تنفيذ كود عن طريق معامل طلب `uiconf_id`، والذي يتم إلحاقه بمسار مجلد التخزين المؤقت (cache folder) دون تنقية عند كتابة التطبيق على القرص. يوجه المهاجم `ServiceUrl` إلى كائن مسلسل خبيث يحمل كود PHP قابل للتنفيذ. يقوم العميل بجلبه وإلغاء تسلسله. بعد ذلك، تقوم قيمة `uiconf_id` التي تحتوي على تسلسلات انتقال المسار (traversal sequences) مثل `../` بإعادة توجيه عملية الكتابة خارج دليل التخزين المؤقت المقصود إلى دليل يمكن الوصول إليه عبر الويب. يؤدي طلب هذا الملف مباشرة إلى تنفيذه كمستخدم خادم الويب. تعتمد خطوة إسقاط الملف على الواجهة الخلفية للتخزين المؤقت المستندة إلى الملفات، وهي إعداد Kaltura الافتراضي، وقد لا تمنع الواجهة الخلفية التي تعتمد على memcache الكتابة ولكنها «لا تجعل النشر آمناً» وفقاً لـ Wemekamp. سجل Wemekamp هذه الثغرة بنتيجة 10.0، وهي أيضاً مُقيّمة من المُبلغ. أشار الباحث إلى أنه أظهر عملية إسقاط الـ web shell الشاملة على صورة docker لخادم Kaltura من عام 2019، وتحقق من وجود نصفي السلسلة وتنفيذ جزء إلغاء التسلسل في الإصدار الحالي.
تشمل الإصدارات المتأثرة التي ذكرها CERT/CC ما يلي:
- html5lib v2.45
- html5lib v2.103 والإصدارات الأقدم
- إصدارات أخرى من v2.x تعرض نقطة النهاية المعرضة للخطر
أكدت The Hacker News في 25 أغسطس أن `deployment/uiconf/KalturaClientBase.php`، وهو الملف الذي يحمل استدعاء `unserialize`، متطابق بايتياً عبر 21 مرجع إصدار، من Jupiter-10.9.0 (المُلتزم به في 27 أبريل 2015) إلى West-23.5.0 (المُلتزم به في 13 أغسطس 2026). يظهر الاستدعاء وانعكاس رسالة الخطأ في مرجع إصدار مُلتزم به في 10 مارس 2014.
السياق وتأثير السوق
يُعد غياب أي تصحيح بعد الإفصاح عن ثغرتين بهذه الخطورة أمراً بالغ الأهمية، خاصة وأن CERT/CC أشار إلى عدم قدرته على التواصل مع Kaltura. يؤثر هذا الإهمال لا على منشآت العملاء الفردية فحسب، بل على «كل مستأجر تخدمه هذه المضيفات المشتركة»، نظراً لتعرض نقطة النهاية المتأثرة على البنية التحتية لشبكة توصيل المحتوى (CDN) متعددة المستأجرين الخاصة بـ Kaltura. لم يتم الإبلاغ عن أي استغلال للثغرتين وقت كتابة التقرير، ولم يظهر أي من معرفي CVE في كتالوج CISA للثغرات المعروفة المستغلة (KEV) اعتباراً من 25 أغسطس 2026. هذا يتوافق مع سياسة NIST الجديدة المعلنة في أبريل، والتي بموجبها لم تعد تثري كل CVE، بل تعطي الأولوية لتلك الموجودة في كتالوج KEV، والبرامج المستخدمة داخل الحكومة الفيدرالية، والبرامج المصنفة كحرجة بموجب الأمر التنفيذي 14028.
واجهت Kaltura مشاكل سابقة تتعلق بإلغاء التسلسل غير الآمن. في أغسطس 2017، قبل أسابيع من نشر Telekom Security لإعلان استشاري يغطي ثلاث ثغرات في المنصة، قامت الشركة بتغيير رمزها (commit 6a6d14328b7a1493e8c47f9565461e5f88be20c9) الذي أزال ثلاث استدعاءات `unserialize` غير آمنة، وتم إصلاح هذه المشكلات في الإصدار 13.2.0. لم يمس ذلك التغيير ملف `KalturaClientBase.php`، مما يعني استمرار وجود نقاط ضعف في أجزاء أخرى من الكود. يتكرر سيناريو إلغاء التسلسل غير الآمن دون إصلاح متاح في أماكن أخرى هذا العام؛ ففي يوليو، استُهدف Fastjson 1.x بهجوم باستخدام ثغرة إلغاء تسلسل أخرى غير مصححة، ولم يتم نشر إصدار مصحح لـ 1.x في ذلك الوقت. تعرض هذه الحوادث المتكررة حقيقة أن إهمال التصحيح يمكن أن يكون مشكلة صناعية أوسع نطاقاً.
سجل الجدول الزمني للباحث Wemekamp تقريراً أولياً لجهة اتصال أمنية لدى البائع في 23 مارس 2026. ثم أرسله مجدداً من عنوان مؤسسي في 13 أبريل، واتصل بمسؤول الأمن السيبراني (CISO) بالبائع عبر LinkedIn في 23 مايو. قام بتصعيد القضية عبر CERT وطني في 2 يوليو. بعد ذلك، أبلغ CERT/CC شركة Kaltura في 8 يوليو. يُدرج التقرير حالة البائع لكلا CVEs على أنها «مجهولة» (Unknown)، مع عدم ورود أي بيان. يوضح هذا المسار الطويل لعدم الاستجابة ضعفاً هيكلياً في آلية الاستجابة الأمنية لـ Kaltura، على الرغم من أن ملف `security.txt` الخاص بالشركة (الذي تم تحديثه آخر مرة في 28 مايو 2024) يوجه تقارير الثغرات إلى برنامج Bug Bounty على HackerOne ويسرد `[email protected]` للاستفسارات الأمنية.
رؤية Glitch4Techs
إن موقف Kaltura من هاتين الثغرتين الخطيرتين لا يُعتبر إهمالاً فحسب، بل يُشير إلى لا مبالاة منهجية بأمن المستخدمين. حقيقة أن الكود المعيب في `KalturaClientBase.php` ظل متطابقاً بايتياً عبر 21 إصداراً منذ 27 أبريل 2015، مع استدعاء `unserialize` الذي يعود تاريخه إلى 10 مارس 2014، تُظهر فشلاً مؤسسياً متأصلاً في إدارة الثغرات الأمنية الأساسية. إن عدم استجابة الشركة لعدة محاولات اتصال من باحث مستقل ومن جهة مثل CERT/CC طوال أشهر، بدءاً من 23 مارس 2026 وحتى 8 يوليو 2026، لا يمكن تبريره. بينما لم يتم الإبلاغ عن استغلال للثغرتين حالياً، فإن الانتشار الواسع للمكتبة وتأثيرها على بنية CDN متعددة المستأجرين يجعلها هدفاً عالياً القيمة.
هذا ليس مجرد إشراف تقني؛ إنه قرار تجاري ضمني بقبول المخاطر، وفي قطاع البنية التحتية للفيديو، هذا خطأ لا يمكن التغاضي عنه. لا يمكن لأي شركة أن تدعي الجدية الأمنية بينما تتجاهل تنبيهات حرجة حول ثغرات RCE التي تعود جذورها إلى ما يقرب من عقد من الزمان في كودها الأساسي. هذا فشل أمني صريح.
كن أول من يعرف بمستقبل التقنية
أهم الأخبار والتحليلات التقنية مباشرة في بريدك.



