
سكريبت كشف CVE-2017-9841
نص كاشف CVE-2017-9841 من Massimiliano Brasile
في 6 يناير 2020، تم إبلاغي بمشكلة أمنية تؤثر على معظم إصدارات PrestaShop (تم مشاركة التحذير من قبل فريق PS داخليًا فقط في 3 يناير 2020). بعد بعض البحث، اكتشفت أن المشكلة تتعلق بمكتبة إطار عمل اختبار تدعى PHPUnit [1] والتي تم تضمينها بطريق الخطأ في بعض الوحدات الإنتاجية المستخدمة في Prestashop 1.7 (الموزعة إما عبر API PrestaShop أو مع تثبيتات PrestaShop). تم تسمية المشكلة في PHPUnit بـ CVE-2017-9841 [2] [3]، لكن التحذير لـ Prestashop نشط حاليًا لأن هناك على الأقل بوت (XsamXadoo) يقوم بمسح مواقع PS لهذه المشكلة تحديدًا [4].
تقنيًا، يشير CVE-2017-9841 إلى إمكانية تنفيذ تعليمات برمجية عن بُعد على أي تطبيق يستخدم إصدارًا معطلًا من phpunit/phpunit وفي 8 يناير 2020 تم اكتشاف مشكلة أخرى ( قبل 4.8.28 و 5.x قبل 5.6.3 تتعلق بالإصدارات قبل 7.5.19 للإصدارات 7.x و 8.5.1 للإصدارات 8.x [5] ). نظرًا لأن phpunit إطار عمل مشهور، يبدو أن المشكلة تؤثر على أنظمة CMS الرئيسية في PHP (Prestashop و Wordpress و Drupal ..) وإضافاتها، ولكن فقط في حالة استخدامها. للمساعدة في العثور على هذه الأبواب الخلفية، من الضروري التحقق من وجود أي تضمين لإطار الاختبار هذا في كل مجلد فرعي من دليل جذر الويب الخاص بك. لذلك، لتسريع الأمر برمته، كتبت هذا النص البرمجي الصغير السريع والقذر الذي يساعدني في التحكم بجميع حالات Prestashop أو Wordpress التي أنا مسؤول عنها.
وفقًا لمنتدى PS [4]، هذه الوحدات بحاجة إلى الفحص:
لكن في اختباراتي وجدتها أيضًا في وحدة ps_facetedsearch v3.2.1. لم تكن موجودة في autoupgrade v4.9+.
في حالة ظهور إصدار معطل لحالات phpunit، قم بتحديث الوحدة الأم الخاصة به إن أمكن، أو قم بإزالتهم (حذف المجلد) إذا كانوا يفتقرون إلى الدعم من مطورهم؛ وفقًا لمنتدى PS، يجب عليك إزالة جميع مجلدات vendor داخل هذه الوحدات بالكامل، لكن هذا بحاجة إلى التحقق!
[2] https://nvd.nist.gov/vuln/detail/CVE-2017-9841
[3] https://www.cvedetails.com/cve/CVE-2017-9841
[4] https://www.prestashop.com/forums/topic/1012095-hack-prestashop-avec-xsamxadoo-bot
[5] غير رسمي بعد!! انظر https://github.com/PrestaShop/PrestaShop/issues/17059#issuecomment-572114133