И снова wp

И снова wp

https://t.me/IzHmfluzM81OTAy


CVE-2026-87902 — это критическая уязвимость в ядре WordPress, получившая оценку 9.2 из 10 по шкале CVSS 4.0. Уязвимость была обнаружена 22 сентября 2026 года и затрагивает функцию `get_page_template()`, отвечающую за выбор шаблона страницы для отображения. Проблема классифицируется как CWE-98: Improper Control of Filename for Include/Require Statement in PHP Programs — некорректный контроль имени файла при включении в PHP.


Уязвимость позволяет неаутентифицированному злоумышленнику (без каких-либо учётных данных) заставить WordPress включить и выполнить произвольный PHP-файл, находящийся за пределами директорий активной темы. При определённых условиях это приводит к удалённому выполнению кода (RCE) и полной компрометации сервера


Функция `get_page_template()` в файле `wp-includes/template.php` формирует имя шаблона на основе пользовательского ввода — параметра `pagename` из URL-запроса. В уязвимых версиях значение `pagename` не проходит проверку через функцию `validate_file()`, которая предотвращает обход директорий с помощью последовательностей `../`.


Вот как выглядит уязвимый код в WordPress 7.1.1:


if ( $pagename ) {
  $pagename_decoded = urldecode( $pagename );
  if ( $pagename_decoded !== $pagename ) {
    // <-- отсутствует validate_file()
    $templates[] = "page-{$pagename_decoded}.php";
  }
  $templates[] = "page-{$pagename}.php";
}



В исправленной версии 7.1.2 добавлена проверка:



// WordPress 7.1.2 (ИСПРАВЛЕННАЯ ВЕРСИЯ)
if ( $pagename_decoded !== $pagename && 0 === validate_file( $pagename_decoded ) ) {
  $templates[] = "page-{$pagename_decoded}.php";
}
// плюс новая функция _wp_is_template_path_allowed(),



Механизм эксплуатации


Поскольку имя кандидата формируется как `page-{значение}.php`, для успешной атаки необходимо выполнение нескольких условий:


1. Активная тема должна содержать директорию верхнего уровня, имя которой начинается page - (например, `page-templates/` ). Такие директории присутствуют в ряде популярных тем, включая Twenty Twelve, Twenty Fourteen, Neve, Hestia и Sydney.


2 Обязательно двойное кодирование — параметр `pagename` уже проходит одно декодирование через PHP, поэтому обычная последовательность `../` не сработает. Злоумышленник должен использовать двойное URL-кодирование, чтобы значение прошло проверку `urldecode()` и было включено в формируемый путь.


3. Для перехода от LFI к RCE требуются дополнительные условия: наличие читаемого файла `pearcmd.php` на сервере и включённая настройка PHP `register_argc_argv` (по умолчанию отключена в PHP 8.5 и включена в более старых версиях).


При выполнении всех условий злоумышленник может включить произвольный PHP-файл, что приводит к выполнению кода с правами веб-сервера.


Уязвимость затрагивает все версии WordPress от 4.7.0 до 7.1.1 включительно. Важно отметить, что версия 7.1.1, выпущенная 17 сентября 2026 года с исправлениями других уязвимостей, также остаётся уязвимой перед CVE-2026-87902.


Исправление включено в WordPress 7.1.2, выпущенный 22 сентября 2026 года. Для пользователей на более старых ветках исправление было перенесено во все поддерживаемые версии:


Исправление также перенесено вплоть до версии 4.7.37.


## Условия эксплуатации и ограничения


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


  • Наличие директории `page-*`** в активной теме. Современные темы по умолчанию (например, текущие версии Twenty Twenty-Four) такой директории не содержат, однако многие сторонние и устаревшие темы её имеют.
  • Для RCE** требуется комбинация из читаемого файла `pearcmd.php` и включённой настройки `register_argc_argv`, что зависит от конфигурации конкретного сервера.

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

По состоянию на 23 сентября 2026 года, открытые источники сообщают об эксплуатации CVE-2026-87902 в реальных атаках. Специалисты по безопасности зафиксировали переход злоумышленников от сканирования уязвимых сайтов к активной эксплуатации: атакующие записывают на диск файлы, которые выполняют shell-команды при обращении к ним. Уязвимость активно используется в дикой природе, что делает немедленное обновление критически важным.


Меры по устранению


Обновление до WordPress 7.1.2 (или соответствующей версии для вашей ветки) является единственным надёжным способом устранения уязвимости. WordPress не предоставляет отдельного обходного решения. Если на сайте включены автоматические фоновые обновления, процесс начнётся автоматически.



Report Page