Плагин simple-file-list, предназначенный для управления списком файлов на сайтах на WordPress, содержит уязвимость, которая позволяет удалённо выполнить произвольный код. Причина - неограниченная загрузка файлов опасного типа. Разработчик уже выпустил исправление, устраняющее проблему. Обновление доступно в версии 4.2.3.
Детали уязвимости
Уязвимость получила идентификатор CVE-2020-36847 и внесена в Банк данных угроз безопасности информации (BDU) под номером BDU:2026-11290. Согласно классификации, ошибка относится к типу CWE-434, который описывает неограниченную загрузку файлов с потенциально опасным содержимым. Базовые оценки CVSS 2.0 и 3.1 составляют 10 и 9,8 балла соответственно, что соответствует критическому уровню опасности. Для эксплуатации не требуется аутентификация или участие пользователя. Это означает, что атака может быть выполнена автоматизированными средствами в любой момент.
Проблема затрагивает все версии плагина до 4.2.3 включительно. Как поясняется в описании, загружаемый файл не проходит достаточную проверку на стороне сервера. Злоумышленник может отправить на сайт исполняемый скрипт, замаскированный под безобидный документ или изображение. В результате он получает возможность выполнить собственный код в контексте веб-сервера. Это влечёт полный контроль над сайтом: изменение содержимого, чтение и выгрузку баз данных, использование сервера для рассылки спама или атак на другие ресурсы.
Механизм эксплуатации прост. Если плагин разрешает загрузку файлов, например, пользователям с определённой ролью или даже неавторизованным посетителям, атакующий загружает файл с расширением, которое сервер интерпретирует как исполняемый. После сохранения остаётся только перейти по прямой ссылке к этому файлу. Сервер выполнит скрипт. Поскольку проверка MIME-типа и содержимого отсутствует, никакие встроенные средства WordPress, как правило, не блокируют такую операцию. Нередко подобные бреши используются для размещения веб-оболочек - специальных программ, которые позволяют дистанционно управлять взломанным сайтом.
Критичность ситуации усиливается тем, что производитель подтвердил уязвимость, а в открытом доступе уже существует эксплойт. Это делает уязвимость доступной для злоумышленников разного уровня подготовки. В таких условиях вероятность практической атаки существенно возрастает. В то же время разработчик оперативно подготовил исправление. Оно включено в версию 4.2.3, которая доступна в каталоге плагинов WordPress. Соответствующие изменения опубликованы в официальном репозитории проекта.
Администраторам сайтов рекомендуется как можно скорее обновить плагин до актуальной версии. Сделать это можно через панель управления WordPress или загрузив архив с сайта разработчика. Если обновление невозможно установить немедленно, стоит временно отключить функцию загрузки файлов либо ограничить её использование только проверенными пользователями. Дополнительной защитой может стать WAF, который блокирует известные типы атак, связанные с загрузкой исполняемых файлов. Также полезно проверить содержимое каталога загрузок плагина на наличие посторонних скриптов, особенно если сайт длительное время работал на уязвимой версии.
Важно понимать, что ошибки класса CWE-434 регулярно встречаются в плагинах для WordPress. По оценкам экспертов, значительная часть взломов сайтов на этой системе управления связана именно с компонентами, которые недостаточно тщательно проверяют загружаемые пользователями файлы. Разработчики часто полагаются на проверку только на стороне браузера или вовсе не осуществляют её, тогда как сервер должен самостоятельно определять тип содержимого и отклонять исполняемые файлы в тех случаях, когда они не предусмотрены функционалом. Отсутствие такой проверки превращает плагин в точку входа для компрометации. Аналогичные проблемы ранее обнаруживались в других плагинах загрузки документов и галерей, что подтверждает системный характер этой ошибки.
Наличие публичного эксплойта делает уязвимость простой мишенью для скриптовых атак. Злоумышленники сканируют интернет в поисках сайтов с установленным плагином и проверяют их версии. Поэтому обновление плагина - это не просто рекомендация, а обязательное условие поддержания безопасности. Администраторам также стоит периодически проверять, какие плагины установлены на сайте, и удалять неиспользуемые. Отдельное внимание следует уделять плагинам, которые редко выходят из тени основных обновлений, поскольку именно в них чаще всего накапливаются долго нераскрытые уязвимости.
Уязвимость в simple-file-list - ещё одно напоминание о необходимости своевременно обновлять все компоненты CMS, включая небольшие и редко обновляемые плагины. Установка патча от разработчика - самый надёжный способ устранить брешь. Вместе с тем следует использовать и другие меры защиты: ограничивать права на загрузку, применять антивирусное сканирование файлов, следить за появлением новых данных об уязвимостях. Комплексный подход позволяет снизить риск до минимума.
Ссылки
- https://bdu.fstec.ru/vul/2026-11290
- https://www.cve.org/CVERecord?id=CVE-2020-36847
- https://plugins.trac.wordpress.org/changeset/2286920/simple-file-list