05.12.2021

Уязвимость в WordPress-дополнении Contact Form 7, насчитывающем 5 млн установок


В WordPress-дополнении Contact Form 7 5.3.2, имеющем более 5 млн активных установок, выявлена уязвимость (CVE-2020-35489), позволяющая организовать выполнение PHP-кода на сервере.

Дополнение Contact Form 7 предназначено для добавления на сайты произвольных форм обратной связи с посетителями. Уязвимость проявляется при включении функции отправки файлов в формах (например, при прикреплении изображения) и позволяет помимо явно разрешённых типов файлов загрузить на сервер файлы с любыми расширениями.

Для обхода проверки на допустимость загружаемого файла достаточно указать символ-разделитель в имени файла, отделив им допустимое расширение. Например, при передаче файла с именем «test.phpt.png» дополнение посчитает, что передана картинка в формате PNG но на диск будет сохранён файл test.php, который затем может быть вызван через прямое обращение к сайту, если в настройках web-сервера явно не запрещено выполнение скриптов в каталоге с загружаемыми данными.

Проблема решена через удаление символов-разделителей и управляющих символов из имён загружаемых файлов. Практическая возможность эксплуатции уязвимости в типовых конфигурациях оценивается как низкая, так как по умолчанию Contact Form 7 для серверов с Apache httpd создаёт в каталоге с загрузками .htaccess, запрещающий прямой доступ к загружаемым файлам («Deny from all»).

Эксплуатацию уязвимости также усложняет то, что файл сохраняется во временном каталоге со случайным именем и удаляется сразу после отправки получателю, т.е. для определения имени временного каталога на сервере должен быть разрешён вывод содержимого каталогов (Options Indexes в Apache httpd) и атакующий должен успеть отправить запрос к серверу до удаления информации. Для атаки сервер также должен допускать выполнение PHP-скриптов в обрабатываемом каталоге.

Источник: https://www.opennet.ru/opennews/art.shtml?num=54281

Добавить комментарий