Лента угроз

CVE-2026-87902 — Неаутентифицированное включение файлов в ядре WordPress (условное RCE): разбор и исправление

CVE-2026-87902 — неаутентифицированное включение файлов в ядре WordPress (CWE-98) с условным RCE. Исправлено 22 сентября в 7.1.2 и в ветках до 4.7; в KEV с 25 сентября.

Опубликовано 2026-09-26 Обновлено 2026-10-04 Последняя проверка 2026-10-05 8 мин чтения
На этой странице

Это краткий разбор уязвимости, которая активно эксплуатируется (включена в CISA KEV). Здесь описано, что происходит, кто затронут и как реагировать — с точки зрения защитника, без шагов для воспроизведения.

Сводка по бюллетеню
CVE
CVE-2026-87902 (GHSA-7hp8-65ch-5whp)
Серьёзность
NVD: CVSS v3.1 8,1 (высокая сложность атаки) / бюллетень WordPress: CVSS v4.0 9,2, Critical
Тип
Включение файлов (CWE-98) — обход пути при разрешении шаблона страницы
Воздействие
Включение файлов .php вне темы; RCE, когда совпадают условия темы и сервера
Предусловия
Без аутентификации, без действий пользователя
Затронуто
WordPress 4.7.0–7.1.1
Исправление
7.1.2, выпущена 22 сентября 2026 года, с исправлениями для каждой ветки вплоть до 4.7
Эксплуатация
В CISA KEV (добавлена 25 сентября 2026 года, срок устранения — 28 сентября), отмечена как требующая криминалистического анализа
4.7–7.1.1
Затронутые версии (около десяти лет выпусков)
Без аутентификации
Что нужно атакующему
3 дня
От исправления (22 сент.) до включения в KEV (25 сент.)
3%
EPSS на 25 сентября — расходится с KEV

Насколько опасно ждать?

WordPress — самая широко используемая CMS, а уязвимость охватывает примерно десять лет выпусков, не требует аутентификации и действий пользователя. Специализирующаяся на WordPress компания по безопасности сообщает, что зондирование началось в день выхода исправления, к следующему дню перешло к попыткам выполнения кода и было включено в универсальные инструменты сканирования. Сканирование неизбирательно; размер вашего сайта не имеет значения.

Что это за уязвимость?

WordPress определяет, какой файл шаблона отображает страницу, выполняя поиск в каталогах темы. Согласно бюллетеню, в разрешении шаблона страницы была брешь: неаутентифицированный злоумышленник мог заставить его включить файл .php за пределами каталогов активной темы. Когда внешнее значение определяет, какой файл загружается, это включение файлов (CWE-98). Этот сайт не описывает, как происходит эксплуатация.

Само по себе это не выполнение кода. В бюллетене условия для RCE разделены на сторону темы и сторону сервера.

Условие на стороне темы (по бюллетеню)

  • В активной родительской или дочерней теме есть каталог верхнего уровня, имя которого начинается с page- (например, page-templates)
  • В бюллетене сказано, что это относится к устаревшим темам Twenty Twelve и Twenty Fourteen и к некоторым популярным сторонним темам, таким как Neve, Hestia и Sydney (уязвимость в обработке в ядре, а не в темах)

Условие на стороне сервера (по бюллетеню)

  • На сервере есть файл .php, который опасно ведёт себя при включении, и он читаем учётной записью веб-сервера
  • Включённая настройка register_argc_argv в PHP значительно облегчает выполнение этого условия
  • В бюллетене сказано, что под угрозой официальный образ PHP для Docker и конфигурация cPanel по умолчанию с PHP старше 8.5

① Уязвимость ядра: можно включить .php вне темы

→ исправлено в 7.1.2 (и релизах каждой ветки)

② Условие темы: каталог, начинающийся с page-

→ сложно определить самостоятельно; не полагайтесь на собственную оценку

③ Условие сервера: опасный .php читаем и включён register_argc_argv

→ отключение настройки предотвращает весь класс атак

Для RCE нужны все три условия: уязвимость в ядре, условие темы и условие сервера. Обновление устраняет первое; изменение конфигурации устраняет третье.

Кто затронут

ВеткаЗатронутоИсправлено
7.17.1.0–7.1.17.1.2
7.07.0.0–7.0.57.0.6
6.96.9.0–6.9.86.9.9
6.86.8.0–6.8.96.8.10
от 6.7 до 4.7до релиза перед исправлением каждой веткиисправление каждой ветки (6.7.9 … 4.7.37)
До 4.7—Исправления нет (не поддерживается)

Что делать

1

Проверьте версию и перейдите на исправленный релиз (первый приоритет)

В панели перейдите в Dashboard → Updates и проверьте версию. Если это не 7.1.2 (или исправленный релиз вашей ветки), обновитесь сегодня. Активно поддерживается только последняя версия, поэтому 7.1.2 — самая надёжная цель.

2

Найдите сайты, до которых не доходят автообновления

На сайтах, которые поддерживают фоновые обновления, обновление запускается само. Риск — сайты вне этого пути: отключённые автообновления, ядро, зафиксированное в Git или образе контейнера (при обновлении и пересборке старая версия возвращается без предупреждения), обновления, заблокированные хостингом, и старый сайт, о котором никто не помнит. Если у вас несколько сайтов, проверьте каждый (чек-лист инвентаризации безопасности).

3

Отключите register_argc_argv в PHP (эшелонированная защита)

PHP, обслуживающему веб-запросы, эта настройка почти никогда не нужна. Установите register_argc_argv = Off в php.ini (или в настройках PHP вашего хостинга); если вы работаете в контейнерах, проверьте конфигурацию образа. Это не заменяет обновление, но перекрывает путь от включения файлов к выполнению кода, который выходит далеко за рамки этой одной CVE.

4

Проверьте, не было ли проникновения до обновления

Если сайт оставался без исправления после 22 сентября, считайте этот период подозрительным; CISA также отмечает эту CVE для криминалистического анализа. Как минимум проверьте: (1) незнакомые файлы .php в /tmp, /var/tmp или в wp-content; (2) запросы в журнале доступа с закодированным в процентах обходом каталогов (аналог ../); (3) администраторов или недавно добавленные плагины, которых вы не узнаёте.

5

Если что-то выглядит неправильно, не ограничивайтесь «исправлено»

Если код мог быть выполнен, патч не удаляет файлы, уже размещённые на сервере, и не отменяет уже украденные ключи. Смените пароль базы данных, ключи аутентификации и соли в wp-config.php, пароли администраторов и ключи API сторонних сервисов, а также удалите подозрительные файлы. Полный порядок действий описан в playbook по устранению уязвимостей и в разделе безопасность WordPress.

Мнение этого сайта: после публикации исправления атаки начинаются сразу

В недавнем случае с Adobe Commerce между исправлением и KEV прошло 44 дня. Здесь — три. Разница в том, насколько легко дифф патча раскрывает атаку и сколько сайтов работает на этом продукте. По сообщаемой хронологии зондирование, похожее на дифф, началось в день выхода исправления.

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

Ещё одно замечание: EPSS был 3%. EPSS полезен, но он отстаёт для недавно раскрытых уязвимостей. Если KEV и EPSS расходятся, ориентируйтесь на KEV — это подтверждённый факт.

Источники

  • WordPress — GHSA-7hp8-65ch-5whp (затронутые и исправленные версии, предусловия RCE, CVSS v4.0 9,2)
  • WordPress.org — Релиз WordPress 7.1.2 (22 сентября 2026; бэкпорты до 4.7, автоматические обновления)
  • NVD — CVE-2026-87902 (CWE-98, CVSS v3.1 8.1)
  • CISA KEV — Каталог известных эксплуатируемых уязвимостей (добавлена 25 сентября 2026, срок 28 сентября, требуется криминалистический анализ)
  • FIRST — EPSS (0,029 на 25 сентября 2026)
  • Отчёт наблюдений — Patchstack (зондирование с дня исправления, попытки выполнения кода на следующий день; эта статья использует только хронологию и проверки со стороны защитника)

Читайте дальше

FAQ

QЧто позволяет CVE-2026-87902?
A

Согласно бюллетеню WordPress, неаутентифицированный злоумышленник может заставить разрешение шаблона страницы (get_page_template) включить выбранный читаемый локальный файл .php за пределами каталогов активной темы. Когда выполнены условия и на стороне серверного окружения, и в активной теме, это приводит к удалённому выполнению кода. CISA добавила уязвимость в KEV 25 сентября 2026 года после подтверждения активной эксплуатации.

QКакие версии затронуты и на какую версию обновляться?
A

С 4.7.0 по 7.1.1. Исправления есть для каждой ветки: 7.1.2, 7.0.6, 6.9.9, 6.8.10 и далее вплоть до 4.7.37. Ветки старше 4.7 исправления не получат. Активно поддерживается только последняя версия, поэтому переход на 7.1.2 — самый надёжный вариант.

QЕсли включены автоматические обновления, я защищён?
A

На сайтах, которые поддерживают фоновые автоматические обновления, обновление запускается само. Оно не доходит до сайтов, где автообновления отключены, где ядро зафиксировано в Git или образе контейнера, или где хостинг блокирует обновления. Проверьте версию в панели управления.

QЕсли я не использую одну из перечисленных тем, я в безопасности?
A

В бюллетене сказано, что для RCE нужны и условие на стороне темы, и условие на стороне сервера. Но условие темы может выполняться как у родительской, так и у дочерней темы, а немногие владельцы сайтов знают структуру каталогов своей темы. Обновление быстрее и надёжнее, чем выяснение того, подпадаете ли вы под условие.

QEPSS всего 3% — почему это срочно?
A

EPSS — это модель, которая оценивает вероятность эксплуатации в течение следующих 30 дней на основе исторических данных, и она может отставать от реальности для недавно раскрытых уязвимостей. KEV фиксирует подтверждённую эксплуатацию. Если они расходятся, ориентируйтесь на KEV.