WordPress 7.1.2: уязвимость атакуют с первого дня. Что мы изменили
22 сентября WordPress закрыл серьёзную уязвимость, и в тот же день начались атаки. Обновитесь до 7.1.2: мы отключили настройку PHP, без которой известная атака не работает, но закрывает уязвимость только обновление.
22 сентября вышел WordPress 7.1.2. Он закрывает уязвимость в том, как WordPress выбирает шаблон страницы (CVE-2026-87902). Затронуты все версии начиная с 4.7, вышедшей в 2016 году, и до 7.1.1 включительно. Входить на сайт для атаки не нужно, а при подходящих условиях уязвимость позволяет злоумышленнику выполнить на сервере свой код.
Атаки начались в тот же день. Patchstack зафиксировал первый разведывательный запрос 22 сентября в 11:49 UTC, а первую попытку записать PHP-файл — в 15:34 UTC. На следующий день таких запросов стало более чем в десять раз больше.
Проверьте версию#
WordPress сам устанавливает обновления безопасности, если их никто не отключал. Но лучше проверить, чем надеяться:
- В WordPress откройте Консоль → Обновления. Там видно, какая у вас версия и устанавливаются ли обновления безопасности автоматически. Нужна версия 7.1.2 или новее. Для старых основных версий тоже вышли исправленные выпуски — от 7.0.6 и 6.9.9 до 4.7.37; полный список — в бюллетене безопасности WordPress (на английском).
- В cPanel откройте WP Toolkit. Там перечислены все сайты на WordPress в вашем аккаунте и их версии. В настройках обновления сайта для пункта «Обновлять WordPress автоматически» должно быть выбрано как минимум «Да, но только промежуточные обновления (обновления безопасности)».
Если автоматические обновления были отключены и вы обновились только сейчас, проверьте, не успел ли кто-то вас опередить. Поищите учётные записи администраторов, которых вы не создавали, и незнакомые PHP-файлы в папке wp-content/uploads. Опубликованная атака записывает свои файлы не на сайт, а во временные папки сервера, поэтому напишите нам — мы проверим их и логи доступа.
Что мы изменили на своих серверах#
Уязвимость заставляет WordPress загрузить PHP-файл, который он загружать не должен. Чтобы превратить это в выполнение своего кода, в опубликованном способе атаки подгружается pearcmd.php — утилита командной строки, которая устанавливается вместе с PHP. С её помощью злоумышленник записывает на сервер нужный ему файл. Этот шаг срабатывает, только если в PHP включена настройка register_argc_argv. Кроме того, атаке нужна тема с папкой, название которой начинается с page-; в бюллетене названы Twenty Twelve, Twenty Fourteen, Neve, Hestia и Sydney.
В PHP 8.2, 8.3 и 8.4 от cPanel эта настройка по умолчанию включена, а большинство сайтов на наших серверах работает на одной из этих версий. 3 октября мы отключили её во всех трёх; в остальных версиях PHP, которые мы предлагаем, она уже была выключена. Сайтам она не нужна: она предназначена для скриптов, которые запускаются из командной строки, и для них ничего не меняется.
Ещё одна защита — файрвол веб-приложений (WAF), который стоит перед каждым сайтом на наших серверах. В нём есть правила для этой уязвимости: запросы, которые пытаются воспользоваться ею опубликованным способом, блокируются ещё до того, как дойдут до WordPress.
И то и другое — дополнительная защита, а не исправление. Уязвимость остаётся в любой версии WordPress без обновления, и кто-нибудь ещё может опубликовать способ воспользоваться ею без этой настройки и без таких запросов. Закрывает её только обновление.
Переносите сайт на WordPress к нам? Сначала обновите его у нынешнего хостера: старый сайт остаётся онлайн, пока вы не дадите согласие на переключение, и всё это время без исправления он уязвим.