WordPress выпустила обновление безопасности 7.1.2, устраняющее уязвимость типа «неаутентичное локальное включение файла» (LFI) в механизме разрешения шаблонов страниц. Уязвимость CVE-2026-87902 позволяет злоумышленнику удалённо выполнить код (RCE) на сервере.
Уязвимость затрагивает версии WordPress от 4.7.0 до 7.1.1 включительно, охватывая почти десятилетие выпусков. Для эксплуатации не требуется аутентификация. Уязвимость имеет рейтинг CVSS 9.2 и классифицируется как CWE-98. Для успешной эксплуатации необходимо, чтобы активная тема содержала каталог верхнего уровня, начинающийся с `page-`, и чтобы PHP был настроен с `register_argc_argv`.
❝The Sink
When WordPress renders a page, get_page_template() in wp-includes/template.php builds a list of candidate template filenames and hands them to the template loader. One of those candidates is built from the pagename query variable, which comes straight from the request:❞
— WordPress
// wp-includes/template.php, new in WordPress 7.1.2
function _wp_is_template_path_allowed( $path ) {
global $wp_stylesheet_path, $wp_template_path;
// A file path that exists and does not contain `..` is allowed.
if ( 0 === preg_match( '#(?:^|/)\.\.[. ]*(?:/|$)#', wp_normalize_path( $path ) ) ) {
return true;
}
// Otherwise resolve the real path and require it to sit inside an allowed theme directory.
$real_path = realpath( $path );
// ...
}
Источники: Patchstack · Security Affairs · Wordfence
@cbunit