Услуги Портфолио Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Безопасность

Уязвимость в ядре WordPress CVE-2026-87902: атаки начались в день выхода патча 7.1.2

26 сентября 2026·5 мин чтения
WordPress 7.1.2CISA KEV
Уязвимость в ядре WordPress CVE-2026-87902: атаки начались в день выхода патча 7.1.2

Коротко о главном

CVE-2026-87902 — критическая уязвимость в самом ядре WordPress, а не в плагине. Она затрагивает версии с 4.7.0 по 7.1.1 и позволяет без авторизации подключить чужой PHP-файл с сервера. 25 сентября 2026 года CISA внесла её в каталог активно эксплуатируемых (KEV). Обновите сайт до 7.1.2 или до исправленного релиза своей ветки сегодня.

WordPress выпустил исправление 22 сентября, и в тот же день, по данным Patchstack, начались первые попытки атак: злоумышленники восстановили эксплойт по диффу патча. Если ваш сайт на WordPress не обновляется автоматически, он уже в зоне риска. Отключённые автообновления на коммерческих проектах — частая история, и именно такие сайты сейчас сканируют первыми.

Оценка по CVSS — 9,2 из 10. Удалённое выполнение кода возможно не везде, а только при сочетании нескольких условий на сервере, но само подключение файла работает на любом уязвимом сайте. Проверка занимает несколько минут, если за площадкой есть регулярная техническая поддержка.

Где ошибка в коде WordPress

Проблема сидит в функции get_page_template(), которая выбирает шаблон темы для отображения страницы. Параметр pagename из URL попадает в имя файла без проверки validate_file(), хотя соседний участок кода эту проверку делает. Вызов urldecode() превращает закодированную строку в обход каталогов, и WordPress подключает PHP-файл за пределами папок темы. Об этом пишет Security Affairs со ссылкой на разбор исследователя.

Уязвимость нашёл Роберт Ресль (Robert Ressl) и передал её через программу WordPress на HackerOne в июле. В исправлении команда WordPress добавила пропущенную проверку и отдельную функцию _wp_is_template_path_allowed(), которая валидирует пути шаблонов во всей системе.

Когда подключение файла превращается в RCE

Для выполнения произвольного кода нужно сразу несколько условий:

  • в активной теме есть папка верхнего уровня, имя которой начинается с page- (например, page-templates/);
  • на сервере лежит pearcmd.php из PEAR;
  • в PHP включён register_argc_argv.

Такое сочетание не редкость. По данным исследователей, оно встречается по умолчанию в официальных Docker-образах PHP и на хостингах с cPanel на PHP ниже 8.5. Атакующий через pearcmd.php записывает PHP-файл в /tmp и затем подключает его той же уязвимостью.

Как развивались атаки

Patchstack зафиксировал первые запросы в 11:49 UTC 22 сентября — в день релиза. Сначала атакующие проверяли, срабатывает ли подключение безобидных файлов ядра вроде wp-links-opml.php. На следующий день в оборот попали публичные шаблоны для сканера Nuclei, объём атак вырос более чем в десять раз, начались попытки записи файлов через pearcmd.php. 25 сентября CISA подтвердила эксплуатацию и добавила CVE в KEV.

Какие версии исправлены

WordPress выпустил исправление во всех ветках, начиная с 4.7. По данным Patchstack, безопасные версии такие:

  • 7.1.x — 7.1.2;
  • 7.0.x — 7.0.6;
  • 6.9.x — 6.9.9;
  • 6.8.x — 6.8.10;
  • старые ветки — вплоть до 4.7.37.

Сайты с включёнными фоновыми обновлениями получили патч автоматически. Официально поддерживается только последняя версия, так что для старых веток это разовая мера, а не повод на них оставаться.

Что делать владельцу сайта прямо сейчас

  • Обновить ядро. Проверьте версию в «Консоли → Обновления» на всех сайтах, включая тестовые стенды и забытые лендинги.
  • Если обновить нельзя сразу. Заблокируйте на WAF или веб-сервере последовательности обхода (%2e%2e, %252e%252e) в параметре pagename и отключите register_argc_argv в PHP — это рвёт цепочку через PEAR.
  • Проверить логи. Признаки атаки — pagename вместе с page_id на главной или /index.php, строки pearcmd, config-show, config-create, User-Agent cve-2026-87902-poc/1.0 и nuclei-cve-2026-87902/1.0.
  • Проверить сервер. Неожиданные .php-файлы в /tmp и /var/tmp означают, что взлом, скорее всего, уже состоялся: нужен разбор инцидента, смена паролей и ключей.
  • Убрать лишнее. Удалите PEAR с веб-серверов, где он не нужен, и запретите запись PHP-файлов во временные каталоги.

Часто задаваемые вопросы

Это уязвимость плагина? Нет, ошибка в ядре WordPress. Поэтому затронут практически любой сайт на версиях 4.7.0–7.1.1, независимо от набора плагинов.

Если в моей теме нет папки page-, я в безопасности? От полного RCE по описанной цепочке — скорее да, но подключение файла всё равно работает. Обновляться нужно в любом случае.

Хватит ли одного обновления? Если сайт был открыт и не обновлён после 22 сентября, патч закрывает дыру, но не удаляет то, что могли записать атакующие. Проверьте /tmp и логи.

Нас касается решение CISA? Срок из KEV обязателен только для федеральных ведомств США. Но попадание в каталог означает подтверждённые атаки, и это сигнал для всех.

Источники

Обновим и проверим ваш сайт на WordPress

Поставим исправленную версию ядра, проверим тему на папки page-, настройки PHP и следы записи файлов в /tmp. Возьмём сайт на регулярную поддержку, чтобы следующий критический патч встал в день выхода.

Заказать поддержку сайта
Материал подготовлен редакцией YuSMP Group по открытым источникам. Нужна экспертиза по теме или разработка под задачу — обсудим проект.