
CVE-2025-49113 هي ثغرة أمنية حرجة تؤثر على إصدارات Roundcube Webmail الأقدم من 1.5.10 و1.6.11. تم اكتشافها في عام 2025، وتسمح هذه الثغرة بتنفيذ التعليمات البرمجية عن بُعد (RCE) عبر إلغاء تسلسل كائنات PHP (PHP Object Deserialization) في نقطة النهاية /settings/upload.php. تنشأ الثغرة بسبب المعالجة غير الصحيحة لمعامل _from، والتي يمكن استغلالها من قبل المستخدمين المصادَق عليهم لتنفيذ تعليمات برمجية عشوائية على الخادم. تشكّل هذه المشكلة خطرًا كبيرًا، حيث قد تمكّن المهاجمين من الحصول على وصول غير مصرح به، أو سرقة البيانات، أو اختراق الخادم بالكامل. تم تصحيح الثغرة في إصدارَي Roundcube 1.5.10 (LTS) و1.6.11، اللذين صدرا ضمن التحديثات الأمنية في يونيو 2025.
يحتوي هذا المستودع على استغلال إثبات المفهوم (PoC) مكتوب بلغة PHP لعرض ثغرة CVE-2025-49113. يستخدم السكربت إلغاء تسلسل كائنات PHP (PHP Object Deserialization) لإنشاء حمولة خبيثة تكتب ملفًا (test_poc.txt) على الخادم الهدف. إليك آلية عمله:
الإعداد: يرسل السكربت طلبًا مصممًا بعناية إلى نقطة النهاية /settings/upload.php في Roundcube مع تضمين كائن من فئة EvilObject المسلسلة داخل معامل _from.
الحمولة: تعرّف فئة EvilObject اسم ملف (مثل /home/public_html/test_poc.txt) ومحتوى يتضمن طابعًا زمنيًا، ويتم تنفيذها عبر طريقة __destruct لكتابة الملف عند إلغاء التسلسل.
التنفيذ: باستخدام cURL، يتحقق السكربت من المصادقة عبر ملف تعريف ارتباط roundcube_sessid صالح ويقوم بتسليم الحمولة. على خادم ثغِر، يؤدي ذلك إلى إنشاء الملف المحدد.
المخرجات: يتم تأكيد النجاح من خلال رسالة "File written successfully"، ويتم حفظ استجابة الخادم في response.html لأغراض التصحيح.
تم اختبار إثبات المفهوم بنجاح في 05 يونيو 2025، حيث تم إنشاء الملف في دليل public_html. لاحظ أن ملف تعريف ارتباط جلسة صالح مطلوب، وأن المسار الهدف يجب أن يكون قابلاً للكتابة من قبل مستخدم خادم الويب.
للتخفيف من المخاطر المرتبطة بـ CVE-2025-49113، اتبع الخطوات التالية:
تحذير: إثبات المفهوم هذا مخصص للأغراض التعليمية فقط. الاستغلال غير المصرح به لهذه الثغرة يعد غير قانوني وقد ينتهك القوانين المحلية.
Rasool13x :)