Обход каталогов в WordPress Core подключает файлы вне темы и уже проверяется сканерами

WordPress

22 сентября 2026 года команда безопасности WordPress закрыла уязвимость CVE-2026-87902 в ядре системы. Ошибка позволяет неавторизованному человеку заставить сайт подключить локальный PHP-файл за пределами каталога активной темы. Если совпадут условия, о которых речь ниже, это заканчивается выполнением чужого кода и полным захватом ресурса. Оценки расходятся: 9.2 по CVSS v4.0, аналитики Wordfence Intelligence дают 8.1. Первые попытки использовать уязвимость появились через пять часов после публикации исправления.

Уязвимость CVE-2026-87902

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

Успех зависит от окружения. Активная тема, родительская или дочерняя, должна содержать каталог верхнего уровня с именем, начинающимся на page-. На сервере нужен читаемый PHP-файл, включение которого даёт полезный злоумышленнику эффект. Официальное уведомление приводит в пример Twenty Twelve, Twenty Fourteen, Neve, Hestia и Sydney, в них такая структура есть. Отдельный случай - режим register_argc_argv в PHP версий до 8.5. С ним файл из состава библиотеки PEAR превращает простое подключение в выполнение команд. Администраторам советуют проверять реальную файловую систему, а не делать вывод по названию темы.

Уязвимы выпуски с 4.7.0 по 7.1.1. Закрывающий релиз - 7.1.2. К тому же для каждой старой ветки подготовили отдельное исправление, последнее из них - 4.7.37. Обновиться можно без перехода на новую мажорную версию, что важно для сайтов, которые годами живут на прежней ветке. Активно поддерживается только свежая ветка. Поэтому после установки точечной заплатки разумно запланировать переход на актуальный выпуск.

Наблюдения за атаками появились почти сразу. Patchstack зафиксировал первые запросы 22 сентября 2026 года в 17:44 по UTC, меньше чем через пять часов после релиза. Кодирование в этих запросах совпадает с тем, которое закрывает патч. Значит, авторы работали от опубликованного исправления, а не искали ошибку самостоятельно. Сейчас это разведка, а не доставка полезной нагрузки. Запросы нацелены на обычные файлы ядра, которые сами по себе ничего не дают. Один из них отдаёт документ в формате OPML (способ обмена списками ссылок). Если такой ответ приходит на месте обычной страницы, включение сработало.

Картина трафика разнообразна. Глубина перехода меняется от трёх до семи уровней, встречается верхний регистр шестнадцатеричных знаков. Часть запросов отправляют методом POST, часть методом GET. Основная масса шла с одной строки клиента на языке Go, меньшая доля - с поддельных браузерных. Источников немного: два соседних адреса IPv4 и один IPv6. Пик пришёлся на первый час, потом активность пошла на спад. Так обычно выглядит беглый обход заранее собранного списка хостов, а не точечная кампания.

Для поиска по логам полезны несколько признаков: дважды закодированная последовательность %252e%252e в строке запроса или в теле; имя страницы, начинающееся с названия каталога шаблонов; два параметра в одном запросе - имя страницы и её идентификатор. Идентификатор нужен, чтобы запрос дошёл до уязвимого участка. Поэтому такая пара редко встречается в обычном трафике.

Если в логах уже есть ответ с документом OPML там, где ожидалась обычная страница, сайт попал в окно уязвимости. Тогда имеет смысл проверить файлы на изменения и следы чужой активности. Условия эксплуатации зависят от темы и настроек сервера, но и то и другое со временем меняется. Значит, отсутствие подходящего каталога или файла сегодня не гарантирует безопасности завтра.

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

Ссылки

Комментарии: 0