22 сентября 2026 года, накануне праздника Национального дня, WordPress выпустил обновление безопасности 7.1.2, закрывающее CVE-2026-87902. Уязвимость находится не в плагине и не в теме. Она в ядре WordPress и затрагивает все версии с 4.7.0 по 7.1.1. В тот же день в 11:49 UTC (2:49 дня по времени Эр-Рияда) компания по информационной безопасности Patchstack увидела первую попытку её эксплуатации, а менее чем через четыре часа — первую попытку записать файл на сервер сайта.

Как атака распространилась за пять дней

Затем она распространилась. Согласно отчёту CrowdSec, опубликованному сегодня, 28 сентября, её сеть с 23 по 27 сентября зарегистрировала 322 680 сигналов атак, соответствующих уязвимости, с 30 813 различных IP-адресов, с пиком 27 сентября — 124 154 сигнала. Национальное управление кибербезопасности Саудовской Аравии (NCA) 23 сентября выпустило предупреждение уровня «Критический» № 2026-7873, а американское агентство CISA 25 сентября внесло уязвимость в свой каталог известных эксплуатируемых уязвимостей.

Что делает уязвимость, простыми словами

Когда посетитель запрашивает страницу, WordPress решает, какой файл шаблона темы использовать для её отображения. Ошибка находится именно на этом шаге: злоумышленник, не вошедший в систему, может направить его на PHP-файл, лежащий на сервере за пределами папки темы, и WordPress его выполнит. WordPress оценивает уязвимость в 9.2 из 10; CISA — в 8.1.

Она превращается в контроль над сайтом, когда совпадают условия, названные в бюллетене WordPress и в отчётах исследователей:

  • Тема: в активной теме есть папка, имя которой начинается с page-. В бюллетене среди таких тем названы Twenty Twelve, Twenty Fourteen, Neve, Hestia и Sydney.
  • Настройка PHP: включён register_argc_argv, что, по данным CrowdSec, является значением по умолчанию в официальных Docker-образах PHP и на серверах cPanel с PHP старше 8.5.
  • Вспомогательный файл: на сервере есть pearcmd.php из PEAR. Злоумышленники используют его для записи новых PHP-файлов, то есть бэкдора, который переживает обновление.

Таким образом, уязвимость бьёт по сайтам неодинаково, но Security Affairs подытоживает так: для выполнения кода нужно, чтобы совпала конфигурация сервера, а у многих серверов она совпадает. Владелец бизнеса обычно не знает, какая тема активна и как настроен сервер, поэтому безопаснее исходить из того, что сайт уязвим, пока не доказано обратное.

Почему атака пришла через часы, а не недели

Обновление безопасности по своей природе показывает, где находится ошибка, потому что изменение кода публично. Patchstack сообщает, что первые полезные нагрузки в точности соответствовали шаблону, который закрыло исправление, — значит, их авторы отталкивались от самого исправления, а не от независимого открытия. Первые попытки запрашивали обычные файлы ядра WordPress, такие как wp-login.php и wp-cron.php, чтобы посмотреть, как отвечают сайты, а затем перешли к записи файлов.

В трафике также видны следы автоматических сканеров и опубликованного кода proof-of-concept. Для владельца бизнеса это означает, что никто не выбирает именно ваш сайт. Инструменты прочёсывают каждый сайт на WordPress, до которого могут дотянуться, и разница между взломанным сайтом и чистым в том, успело ли обновление прийти раньше них.

Обновляется ли ваш сайт сам?

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

Но автоматические обновления можно отключить одной строкой в wp-config.php. Некоторые разработчики отключают их намеренно, чтобы обновление не сломало доработанную тему, а некоторые хостинг-провайдеры управляют обновлениями на своей стороне. Сайт, который фрилансер сделал много лет назад и чей договор давно закончился, может годами оставаться на старой версии, и никто этого не заметит. Чтобы проверить:

  • Войдите в админку сайта, откройте страницу «Обновления» в меню «Консоль» — там вы увидите текущую версию.
  • Безопасная версия — 7.1.2 или новее. Если ваш сайт работает на более старой ветке, исправление дошло до всех веток вплоть до 4.7, включая 7.0.6, 6.9.9, 6.8.10 и 4.7.37; полный список приведён в бюллетене WordPress, ссылка на который есть в источниках.
  • Учтите, что, по словам WordPress, активно поддерживается только самая последняя версия. Сайт, оставленный на старой ветке, получил это исправление, но живёт взаймы. О том, что новая версия даёт корпоративному сайту, мы писали в статье WordPress 7.1: главные нововведения.

Elementor тоже: достаточно одной ссылки

На той же неделе Elementor, популярный конструктор страниц для WordPress, исправил уязвимость только в версиях 4.3.0 и 4.3.1. Если администратор сайта откроет специально подготовленную ссылку, будучи авторизованным, злоумышленник может создать подконтрольную ему учётную запись администратора, а ссылка может прийти по электронной почте, в чате или в комментарии. По данным BleepingComputer, эти версии установлены максимум на 2 миллионах сайтов. Исправление вошло в версию 4.3.2, вышедшую 24 сентября, и на момент публикации издание не сообщало об активной эксплуатации.

Убедитесь, что Elementor обновлён до 4.3.2 или новее, и сделайте правилом для команды: не открывать ссылки из сообщений или комментариев, будучи авторизованным в админке сайта.

Если ваш сайт не обновлялся с 22 сентября

  • Обновите его сейчас: если разработчик опасается, что обновление что-то сломает, Patchstack сообщает, что путь можно временно закрыть, заблокировав попытки обхода каталогов в параметре pagename или отключив register_argc_argv. Это задача для хостинга или разработчика, и это не заменяет обновление.
  • Исходите из того, что ваш сайт уже прощупывали: попросите разработчика или хостинг поискать PHP-файлы, которые никто не добавлял, особенно в /tmp и /var/tmp, где Patchstack называет такие файлы, как poc87902.php и wp-pear-rce-flag.php, признаками успешного выполнения кода.
  • Если что-то нашлось: относитесь к этому как к инциденту, а не к обновлению. Смените пароли администраторских учётных записей, базы данных и хостинга, восстановите сайт из чистой резервной копии, а затем обновите его.
  • Если на сайте хранятся данные клиентов: если он хранит заказы, контактные формы или учётные записи, руководство Саудовского управления по данным и искусственному интеллекту (SDAIA) по инцидентам с утечкой персональных данных обязывает оператора уведомить компетентный орган в течение 72 часов с момента, когда ему стало известно об утечке, способной нанести вред данным или людям, которым они принадлежат.

Позиция Origami

Многие сайты компаний построены на WordPress, а затем к ним относятся как к печатной брошюре: разработчик сдаёт сайт, владелец платит, и никто не спрашивает, кто будет его обновлять. Эта уязвимость напоминает, что сайт — это живая система на сервере, доступном из интернета, и что промежуток между публикацией исправления и появлением атакующего теперь измеряется часами. Настоящий вопрос не в том, безопасен ли WordPress, ведь он исправил ошибку и выпустил исправление для всех веток вплоть до 4.7. Вопрос в том, кто в вашей компании отвечает за его установку.

Поэтому мы считаем, что договор на обслуживание сайта должен устанавливать максимальный срок установки критических обновлений безопасности, требовать staging-копию, на которой обновления тестируются до рабочего сайта, и предусматривать регулярные резервные копии, хранящиеся вне самого сервера. А если обновления постоянно откладываются, потому что тема доработана так, что ломается при каждом обновлении, — это проблема того, как был сделан сайт, а не WordPress, и её стоит решить до следующей уязвимости.

Итог: три шага

  • Сегодня: откройте админку и убедитесь, что версия — 7.1.2 или исправленный выпуск вашей ветки, а Elementor — 4.3.2 или новее.
  • На этой неделе: попросите разработчика или хостинг просканировать сервер на незнакомые PHP-файлы и письменно подтвердить, что автоматические обновления включены.
  • В этом месяце: добавьте в договор на обслуживание максимальный срок установки обновлений безопасности и назначьте ответственного за это человека.

Источники