
скрипт детектора 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 — известный фреймворк, похоже, что проблема затрагивает основные PHP CMS (Prestashop, Wordpress, Drupal, ..) и их плагины, но только в том случае, если они его используют. Чтобы помочь найти эти бэкдоры, необходимо проверить наличие этого тестового фреймворка в каждой подпапке вашего веб-корня. Поэтому для ускорения всего процесса я написал этот небольшой быстрый и грязный скрипт, который помогает мне контролировать все экземпляры Prestashop или Wordpress, за которые я отвечаю.
ГДЕ ПРОВЕРЯТЬ
Согласно форуму PS [4], необходимо проверить следующие модули:
Но в моих тестах я также нашел его в модуле ps_facetedsearch v3.2.1. Он отсутствовал в autoupgrade v4.9+.
КАК ИСПОЛЬЗОВАТЬ СКРИПТ
КАК ИСПРАВИТЬ
В случае обнаружения ошибочных версий экземпляров phpunit, обновите, если возможно, его родительский модуль или удалите (удалите папку) их, если они не имеют поддержки от разработчика; согласно форуму PS, следует полностью удалить все папки vendor внутри этих модулей, но это необходимо проверить!
ССЫЛКИ
[5] Еще не официально!! см. https://github.com/PrestaShop/PrestaShop/issues/17059#issuecomment-572114133