ثغرة أمنية في مكتبة PharStreamWrapper تؤثر على Drupal وJoomla وTypo3

في المكتبة PharStreamWrapper، والذي يوفر معالجات للحماية منها من الهجمات من خلال استبدال الملف بتنسيق "Phar"، المحددة عالي التأثر (CVE-2019-11831)، والذي يسمح لك بتجاوز حماية إلغاء تسلسل التعليمات البرمجية عن طريق استبدال الأحرف ".." في المسار. على سبيل المثال، يمكن للمهاجم استخدام عنوان URL مثل "phar:///path/bad.phar/../good.phar" للهجوم، وستقوم المكتبة بتمييز الاسم الأساسي "/path/good.phar" عندما التحقق، على الرغم من أنه أثناء المعالجة الإضافية لمثل هذا المسار سيتم استخدام الملف "/path/bad.phar".

تم تطوير المكتبة من قبل منشئي CMS TYPO3، ولكنها تُستخدم أيضًا في مشاريع Drupal وJoomla، مما يجعلها أيضًا عرضة للثغرات الأمنية. تم إصلاح المشكلة في الإصدارات PharStreamWrapper 2.1.1 و3.1.1. قام مشروع دروبال بإصلاح المشكلة في التحديثات 7.67 و8.6.16 و8.7.1. ظهرت المشكلة في Joomla منذ الإصدار 3.9.3 وتم إصلاحها في الإصدار 3.9.6. لإصلاح المشكلة في TYPO3، تحتاج إلى تحديث مكتبة PharStreamWapper.

على الجانب العملي، تسمح ثغرة أمنية في PharStreamWapper لمستخدم Drupal Core الذي لديه أذونات "إدارة السمة" بتحميل ملف phar ضار والتسبب في تنفيذ كود PHP الموجود فيه تحت ستار أرشيف phar الشرعي. تذكر أن جوهر هجوم "إلغاء تسلسل Phar" هو أنه عند التحقق من ملفات المساعدة المحملة لوظيفة PHP file_exists()، تقوم هذه الوظيفة تلقائيًا بإلغاء تسلسل البيانات الوصفية من ملفات Phar (أرشيف PHP) عند معالجة المسارات التي تبدأ بـ "phar://" . من الممكن نقل ملف phar كصورة، حيث تحدد الدالة file_exists() نوع MIME حسب المحتوى، وليس حسب الامتداد.

المصدر: opennet.ru

إضافة تعليق