CVE-2026-87902 в Ubuntu: удалённое включение файла и RCE через WordPress

CVE: CVE-2026-87902
Продукт: Ubuntu
Дата публикации: 22.09.2026
Критичность: HIGH
CVSS: 8.1 (3.1)
EPSS: 18,17%; процентиль 97,11%
CISA KEV: да

Краткое описание​


В Ubuntu затронут пакет wordpress во всех указанных LTS-релизах. Ошибка находится в функции get_page_template() ядра WordPress: при разрешении page-template атакующий может указать читаемый локальный .php-файл вне каталогов активной темы. При совпадении условий на стороне сервера и активной темы это приводит к удалённому выполнению кода без аутентификации.

Основные характеристики​


WordPress разрешает подстановку произвольного локального PHP-файла в механизм page-template, что даёт прямой путь к исполнению кода на сервере без входа в админку.

  • Тип ошибки: CWE-98 — Remote File Inclusion.
  • CVSS 3.1: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H, оценка 8.1, severity HIGH.
  • Условия атаки: доступ к HTTP-интерфейсу WordPress, наличие читаемого .php-файла вне активной темы и соответствующая конфигурация сервера.
  • Факт эксплуатации: CVE-2026-87902 включён в CISA KEV; attackers started probing WordPress sites hours after the patch according to Patchstack.
  • EPSS: 18,17% (percentile 97,11%).

Какие продукты и версии затронуты​


В Ubuntu затронуты пакеты wordpress и связанные темы во всех указанных дистрибутивных версиях. Версии указаны в формате Debian/Ubuntu с дебьюном.

  • Ubuntu 16.04 LTS: wordpress 4.4.2+dfsg-1ubuntu1, wordpress-l10n 4.4.2+dfsg-1ubuntu1, wordpress-theme-twentyfifteen 4.4.2+dfsg-1ubuntu1, wordpress-theme-twentyfourteen 4.4.2+dfsg-1ubuntu1, wordpress-theme-twentysixteen 4.4.2+dfsg-1ubuntu1.
  • Ubuntu 18.04 LTS: wordpress 4.9.5+dfsg1-1, wordpress-l10n 4.9.5+dfsg1-1, wordpress-theme-twentyfifteen 4.9.5+dfsg1-1, wordpress-theme-twentyseventeen 4.9.5+dfsg1-1, wordpress-theme-twentysixteen 4.9.5+dfsg1-1.
  • Ubuntu 20.04 LTS: wordpress 5.3.2+dfsg1-1ubuntu1, wordpress-l10n 5.3.2+dfsg1-1ubuntu1, wordpress-theme-twentynineteen 5.3.2+dfsg1-1ubuntu1, wordpress-theme-twentyseventeen 5.3.2+dfsg1-1ubuntu1, wordpress-theme-twentysixteen 5.3.2+dfsg1-1ubuntu1.
  • Ubuntu 22.04 LTS: wordpress 5.8.3+dfsg1-1ubuntu1.1, wordpress-l10n 5.8.3+dfsg1-1ubuntu1.1, wordpress-theme-twentynineteen 5.8.3+dfsg1-1ubuntu1.1, wordpress-theme-twentytwenty 5.8.3+dfsg1-1ubuntu1.1, wordpress-theme-twentytwentyone 5.8.3+dfsg1-1ubuntu1.1.
  • Ubuntu 24.04 LTS: wordpress 6.4.3+dfsg1-1ubuntu1, wordpress-l10n 6.4.3+dfsg1-1ubuntu1, wordpress-theme-twentytwentyfour 6.4.3+dfsg1-1ubuntu1, wordpress-theme-twentytwentythree 6.4.3+dfsg1-1ubuntu1, wordpress-theme-twentytwentytwo 6.4.3+dfsg1-1ubuntu1.
  • Ubuntu 26.04 LTS: wordpress 6.7.2+dfsg1-1.1ubuntu2, wordpress-l10n 6.7.2+dfsg1-1.1ubuntu2, wordpress-theme-twentytwentyfive 6.7.2+dfsg1-1.1ubuntu2, wordpress-theme-twentytwentyfour 6.7.2+dfsg1-1.1ubuntu2, wordpress-theme-twentytwentythree 6.7.2+dfsg1-1.1ubuntu2.

Причина уязвимости​


Уязвимость связана с логикой page-template в WordPress Core.

Функция get_page_template() разрешает подстановку файла, который не ограничен каталогами активной темы. Если передан путь к читаемому локальному .php-файлу вне этих каталогов, файл может быть включён как шаблон страницы.

Граница доверия нарушается на этапе разрешения имени шаблона: система ожидает, что page-template указывает на файл внутри разрешённых темных каталогов, но при этом фактически использует переданное значение без достаточной привязки к активной теме.

Это позволяет включить произвольный PHP-файл из файловой системы сервера, если он доступен для чтения процессом веб-сервера.

Как работает атака​


Атакующий обращается к HTTP-интерфейсу WordPress без аутентификации.

В запросе передаётся параметр page-template со значением, указывающим на локальный .php-файл вне каталогов активной темы. WordPress Core вызывает get_page_template() и разрешает этот путь как шаблон страницы.

Если файл существует, читаем для процесса PHP и содержит исполняемый код, он включается в контексте выполнения шаблона. Это даёт возможность выполнить произвольный PHP-код на сервере.

Успех зависит от двух условий: доступность целевого .php-файла для чтения и соответствие конфигурации активной темы и сервера требованиям page-template.

Условия успешной эксплуатации​


Для успешной эксплуатации нужны следующие условия.

  • Доступ к HTTP: сайт с установленным WordPress доступен по сети, обычно через стандартный порт 80 или 443.
  • Читаемый .php-файл: на сервере есть PHP-файл вне каталогов активной темы, который процесс веб-сервера может прочитать.
  • Активная тема: активная тема WordPress поддерживает page-template и разрешает подстановку файла в ожидаемую логику.
  • Отсутствие аутентификации: вход в админскую панель не требуется; атака идёт через публичный HTTP-интерфейс.
  • Совпадение условий сервера: PHP-конфигурация и права доступа позволяют включить указанный файл как шаблон.

Возможный сценарий атаки​


Атакующий находит публичный WordPress-сайт в Ubuntu. Он отправляет HTTP-GET или POST запрос к странице с параметром page-template, указывающим путь к локальному PHP-файлу вне темы.

WordPress Core вызывает get_page_template(). Функция разрешает переданный путь и включает файл как шаблон страницы. Если файл содержит PHP-код, код выполняется в контексте веб-процесса.

Результатом может быть выполнение произвольного кода на сервере: изменение данных, создание файлов, запуск процессов или дальнейшее движение внутри инфраструктуры, если права процесса позволяют это.

Есть ли публичный эксплойт​


В CISA KEV CVE-2026-87902 указан как WordPress Core Remote File Inclusion Vulnerability.

Patchstack сообщает, что attackers started probing WordPress sites hours after the patch. Это означает активное сканирование и использование уязвимости в реальных условиях после публикации исправлений.

Конкретные PoC, payload и рабочие команды из переданного пакета доказательств не раскрыты. Наличие информации о пробах атакующих подтверждает практическую значимость ошибки, но точные технические детали реализации не приведены.

Признаки эксплуатации​


Специфичных IOC для CVE-2026-87902 в предоставленных источниках нет.

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

  • Необычные запросы к page-template: параметры page-template со значениями, указывающими на файлы вне каталогов темы.
  • Выполнение PHP-кода из нестандартных путей: в логах веб-сервера или PHP visible errors.
  • Новые файлы в webroot: появление .php-файлов вне стандартных каталогов WordPress.
  • Изменение конфигурации: новые cron-задачи, изменения в php.ini или .htaccess.
  • Сетевые соединения из веб-процесса: исходящие запросы от Apache/Nginx/PHP-FPM к внешним адресам.

Как обнаружить атаку​


Для обнаружения атаки используйте журналы и мониторинг файловой системы.

  • Логи веб-сервера: фильтруйте запросы, содержащие page-template со значениями вне каталогов темы. Ищите повторяющиеся паттерны с одинаковыми путями.
  • Логи PHP: ищите ошибки или предупреждения о включении файлов из нестандартных путей.
  • Мониторинг файловой системы: отслеживайте создание новых .php-файлов в каталогах WordPress, особенно вне themes/.
  • Сетевой мониторинг: фиксируйте исходящие соединения от процесса веб-сервера или PHP-FPM.
  • Проверка cron и конфигурации: регулярно сверяйте /etc/cron.*, ~/.cron.d и файлы .htaccess на предмет изменений.

Как проверить свою версию​


Для проверки версии Ubuntu и установленного пакета wordpress используйте команды ниже. Замените <имя-пакета> на wordpress.

Bash:
cat /etc/os-release
uname -r
apt-cache policy <имя-пакета>
ubuntu-security-status

Команда apt-cache policy показывает доступные версии пакета и установленную версию. Замените <имя-пакета> на wordpress, чтобы получить информацию о пакете.

Если пакет установлен в другой форме, например через snap или docker, команды выше не применимы. Проверьте конфигурацию контейнера или snap напрямую.

Исправление​


Основное исправление — обновление пакета wordpress до версии, содержащей фикс WordPress Core.

  • Обновите пакеты: выполните apt update и apt upgrade для всех LTS-версий Ubuntu.
  • Проверьте темы: убедитесь, что активная тема не использует уязвимую логику page-template.
  • Ограничьте доступ к файловой системе: настройте права на каталоги WordPress так, чтобы процесс веб-сервера мог читать только необходимые файлы.
  • Используйте WAF: включите правила для блокировки аномальных значений page-template.
  • Ротация ключей: если есть подозрение на компрометацию, обновите пароли БД, API-ключи и токены доступа.

Временные меры защиты​


Пока обновление не применено, используйте следующие временные меры.

  • Блокируйте page-template через WAF: настройте правило для отклонения запросов с параметром page-template, если значение указывает на файлы вне каталогов темы.
  • Ограничьте права на файлы: убедитесь, что процесс веб-сервера не может читать .php-файлы вне каталогов WordPress.
  • Отключите page-template в темах: если активная тема поддерживает эту функцию, временно отключите её или замените на статический шаблон.
  • Мониторинг в реальном времени: включите алерты на создание новых .php-файлов и исходящие сетевые соединения из веб-процесса.

Как проверить устранение уязвимости​


После обновления проверьте, что уязвимость устранена.

  • Проверьте версию пакета: выполните apt-cache policy wordpress и убедитесь, что установлена исправленная версия.
  • Тест page-template: отправьте запрос с параметром page-template, указывающим на файл вне каталогов темы. Если файл не включается или вызывается ошибка безопасности — фикс работает.
  • Проверьте логи: убедитесь, что в логах нет ошибок включения файлов из нестандартных путей после обновления.
  • Сканирование: прогоните уязвимостный сканер для WordPress и убедитесь, что CVE-2026-87902 не обнаружен.

Вывод​


CVE-2026-87902 — удалённая включение файла в WordPress Core, приводящая к RCE без аутентификации.

В Ubuntu затронуты все LTS-версии с пакетом wordpress. Ошибка подтверждена CISA KEV и активным использованием атакующими.

Обновление пакета wordpress до исправленной версии — основной способ устранить уязвимость. Временные меры включают WAF, ограничение прав на файлы и мониторинг page-template.

Официальные источники​


  1. NVD — CVE-2026-87902
  2. Ubuntu OSV — CVE-2026-87902
  3. CISA Known Exploited Vulnerabilities Catalog
  4. FIRST EPSS — CVE-2026-87902

История обновлений статьи​


  • 27.09.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ