У администраторов сайтов, работающих под управлением WordPress, выдалась тяжелая неделя. В понедельник, 5 февраля 2018 года, разработчики опубликовали новую версию CMS (WordPress 4.9.3), которая должна была устранить ряд мелких проблем, но в итоге случайно испортила механизм автоматических обновлений, позволяющий CMS обновляться самостоятельно, без участия пользователя.
Хотя ошибку быстро заметили, и уже на следующий день был выпущен WordPress 4.9.4, восстанавливающий нормальную работу системы автоматических обновлений, возникла очевидная проблема. Дело в том, что пользователи, у которых система обновлений уже сломалась, не получили автоматического исправления в виде WordPress 4.9.4, они могут даже не знать о его существовании. Для установки версии 4.9.4 пострадавшим нужно инициировать обновление вручную, из панели управления.
Еще одной скверной новостью является тот факт, что в обеих версиях (4.9.3 и 4.9.4) по-прежнему отсутствует патч для уязвимости CVE-2018-6389, о которой ранее сообщил независимый израильский ИБ-специалист Барак Тавайли (Barak Tawily).
Напомню, что критическая DoS-уязвимость связана с работой load-scripts.php. По сути, баг позволяет «уронить» практически любой уязвимый сайт, направляя ему специально сформированные запросы.
Тавайли обнаружил, что атакующий может заставить load-scripts.php загрузить все доступные файлы JavaScript вообще, просто перечислив их в URL. Из-за этого атакуемый сайт может начать работать значительно медленнее, поглощая все больше и больше мощностей сервера. Разумеется, при помощи одного такого запроса злоумышленнику не удастся спровоцировать отказ в обслуживании, однако исследователь создал proof-of-concept эксплоит: простой скрипт doser.py, написанный на Python. Скрипт отправляет множество подобных запросов целевому URL. Примерно после 500 запроса средний сайт, работающий на VPS-сервере, перестает отвечать вовсе, «отдавая» лишь ошибки 502, 503 и 504.
Специалист предупредил, что с одного компьютера вряд ли удастся «положить» работающий под управлением WordPress сайт, расположенный на мощном, отдельном сервере, однако если в распоряжении атакующего есть широкий канал или несколько ботов, атака сработает и против такого ресурса, причем окажется менее затратной для злоумышленника, нежели обычный DDoS.
Хотя Тавайли уведомил о проблеме разработчиков CMS, те не сочли обнаруженную уязвимость достаточно серьезной и сообщили, что решать такие проблемы нужно на уровне сервера или сети, но не на уровне приложений. Судя по отсутствию патчей в составе версий 4.9.3 и 4.9.4, решение разработчиков до сих пор не изменилось.
При этом журналисты издания Bleeping Computer предупреждают, что proof-of-concept эксплоит для CVE-2018-6389 свободно доступен в сети (1, 2). Более того, специалисты компании Imperva подготовили собственный доклад, в котором полностью согласились с выводами Барака Тавайли и сообщили, что сайты под управлением WordPress уже подвергаются атакам, которые эксплуатируют данный баг.
Напомню, что Тавайли опубликовал на GitHub собственный форк WordPress, в котором уязвимость устранена. Также исследователь выложил в открытый доступ bash-скрипт, который позволяет исправить проблему в уже существующих установках WordPress. Теперь появился еще один возможный вариант обхода проблемы: защититься от уязвимости можно при помощи ModSecurity.