Разработчики популярного плагина Contact Form 7 для WordPress, который установлен более чем на 5 000 000 сайтов, выпустили исправление для критической уязвимости.

Проблема позволяла злоумышленникам обмануть защитные механизмы, отвечающие за очистку имен файлов при загрузке. В результате хакеры получали возможность загрузить вредоносный файл с произвольным кодом на уязвимый сервер, а затем запустить его как скрипт, чтобы выполнить код, скрытый внутри.

Баг был обнаружен специалистами компании Astra Security, во время аудита, который те проводили для одного из своих клиентов. Уязвимость устранили в версии 7 5.3.2, и теперь разработчики настоятельно рекомендуют всем администраторам сайтов обновить плагин как можно скорее.

Исправление

Журналисты издания Bleeping Computer объясняют, что баг возникал из-за файла includes/formatting.php, который является частью Contact Form 7. В уязвимых версиях плагин не удалял специальные символы из загруженных файлов, включая управляющий символ и разделители. Из-за этого атакующий имел возможность загрузить на сервер файл с двойным расширением, например, «abc.php    .jpg».

В этом примере разделителем между расширениями выступает символ табуляции (\t), и для клиентского интерфейса плагина такой файл будет выглядеть как обычное изображение в формате .jpg. Однако при загрузке на сервер Contact Form 7 осуществит парсинг имени файла, отбросит лишнее расширение, и на сервер попадет файл abc.php, то есть PHP-скрипт, к которому затем сможет получить доступ злоумышленник (для выполнения произвольного кода).

1 комментарий

  1. Аватар

    0d8bc7

    18.12.2020 в 13:05

    «отбросит лишнее расширение, и на сервер попадет файл abc.php» — Не знал, что лишнее расширение это то расширение, которое определяет функционал (в случае с JPG — обработать как JPG). Ну ок, спс, буду знать)

Оставить мнение