Израильский программист Барак Тавили выявил в популярной CMS WordPress серьезную уязвимость, с помощью которой можно “положить” практически любой сайт. Эксперт отмечает, что уязвимость обнаружена даже в самых последних версиях WordPress.
По словам автора, уязвимость (CVE-2018-6389) связана с обработкой запросов на подключение JavaScript или CSS при загрузке страниц. Используемым при этом WordPress-скриптам load-scripts.php и load-styles.php в параметре load передается информация о том, какие JavaScript или стили нужно получить. PHP-сценарии объединяют указанные значения, и в итоге клиенту возвращается один файл. Такая возможность доступная администратору позволяет уменьшить нагрузку на сервер и повысить скорость загрузки страниц. Однако для включения load-scripts.php на странице администратора (wp-login.php) авторизация не требуется, то есть, функция доступна каждому пользователю что и кроет в себе большую опасность. По словам Тауили, злоумышленник может заставить load-scripts.php вызвать все возможные файлы JavaScript (то есть, 181 скрипт – 4 мб данных!), передав их имена в URL-адресе. Таким образом, атакующий может спровоцировать повышенную нагрузку на работу хостинга. Разумеется, одного запроса будет недостаточно чтобы “положить” сайт на хостинге. А вот несколько сотен запросов однозначно могут вызвать проблемы отклика сервера.
Примечательно, что разработчики WP данный баг не признали, сославшись на то, что данную проблему нужно решать на уровне хостинга а не скрипта. Тогда Тавили самостоятельно исправил данную уязвимость, выложив исправленную версию WordPress на GitHub