главное в кибербезопасности Читать в канале
Уязвимости 23 сентября 2026 2 мин

WordPress 7.1.2: LFI в шаблонах страниц приводит к RCE без аутентификации

WordPress 7.1.2 устраняет LFI с возможностью RCE

22 сентября 2026 года вышло обновление WordPress 7.1.2. Релиз содержит исправление критической уязвимости, позволяющей выполнять произвольный код без аутентификации. Уязвимость классифицирована как CWE-98. Для неё назначен идентификатор CVE-2026-87902. Оценка CVSS 4.0 составляет 9.2 (AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N).

Локальное включение файлов в WordPress 4.7.0–7.1.1

Уязвимость затрагивает все версии WordPress начиная с 4.7.0 и до 7.1.1 включительно. Для её эксплуатации не требуется учётная запись. Проблема заключается в разрешении шаблонов страниц, где переменная запрашиваемая pagename обрабатывалась некорректно. Функции get_page_template() в wp-includes/template.php формировала список кандидатов для шаблонов, включая один, основанный на pagename. Этот кандидат не проходил проверку validate_file(), в отличие от других. Атакующий мог использовать это для включения локальных файлов. Для успешной эксплуатации требуется, чтобы активная тема имела каталог верхнего уровня, начинающийся с page-, и чтобы целевой файл заканчивался на .php. Дополнительный вызов extra urldecode() преобразовывал строку обхода каталогов в реальный путь. Успешное включение файла могло привести к выполнению кода при определённых условиях. Это возможно, если на сервере есть доступный для чтения .php файл, который выполняет полезные действия при включении. Распространённым примером является pearcmd.php из библиотеки PEAR, который становится функциональным при включённой опции register_argc_argv в PHP. Эта настройка включена по умолчанию во многих окружениях, включая официальные образы Docker и cPanel для версий PHP ниже 8.5. Таким образом, уязвимость представляет собой условную цепочку: включение файла без аутентификации всегда возможно, а выполнение кода — при совпадении конфигураций сервера.

WordPress 7.1.2 применяет проверку validate_file() и фильтрацию путей

Разработчики WordPress внесли два изменения для устранения уязвимости. Первое — применение проверки validate_file() к переменной pagename, аналогично тому, как это делалось для других кандидатов в шаблоны. Второе изменение — введение новой функции _wp_is_template_path_allowed(). Эта функция проверяет каждый разрешённый путь к шаблону. Она требует, чтобы файл существовал и не содержал .. для обхода каталогов. Кроме того, проверяется, находится ли реальный путь файла внутри разрешённого каталога темы. Эти изменения были применены ко всем поддерживаемым веткам WordPress, начиная с версии 4.7.0.

Обновиться до WordPress 7.1.2 или проверить конфигурацию

Рекомендуется обновить WordPress до версии 7.1.2. Обновление доступно через панель администратора в разделе «Обновления» или для скачивания с WordPress.org. Сайты с автоматическим обновлением должны получить его автоматически. Если немедленное обновление невозможно, следует проверить два аспекта: наличие в активной теме каталога верхнего уровня, начинающегося с page-, и включена ли опция register_argc_argv в конфигурации PHP. Эти проверки помогут оценить степень риска, но не заменяют обновление.

Опубликовано в канале 23 сентября, 12:07

Каждый материал сайта выходит в канале в тот же момент.

Источники: Patchstack · Security Affairs · Wordfence