Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/langz337/cve-2026-87902
РазведкаСканеры уязвимостейСканеры веб-уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииВеб-безопасностьТестирование на ПроникновениеИнструмент Удаленного Доступа
GitHublangz337/cve-2026-87902

CVE-2026-87902

11 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

Сканирует WordPress Core 4.7.0–7.1.1 на наличие CVE-2026-87902 — неаутентифицированного LFI через обход pagename с двойным кодированием, с опциональной эскалацией до RCE через PEAR config-create и массовым сканированием.

Репозиторий
Поделиться

CVE-2026-87902 — Неаутентифицированное локальное включение файлов (LFI → условное RCE) в ядре WordPress

Инструмент эксплуатации обхода пути в get_page_template() / locate_template() ядра WordPress

Только для авторизованного тестирования безопасности. Несанкционированный доступ к компьютерным системам незаконен.


Обзор уязвимости

ПунктДетали
CVE IDCVE-2026-87902
GHSA IDGHSA-7hp8-65ch-5whp
Тип уязвимостиCWE-98 — Некорректный контроль имени файла для include/require
CVSS v3.18.1 (High) / CVSS 4.0: 9.2 (Critical)
Уязвимый компонентЯдро WordPress
Уязвимые версии4.7.0 – 7.1.1 (все ветки)
Исправленные версии7.1.2 (и бэкпорты вплоть до 4.7.37)
Требуется аутентификацияНет (неаутентифицированная)
Вектор атакиОдин GET-запрос
ОбнаруженоRobert Ressl (через программу WordPress HackerOne)
Дата раскрытия22 сентября 2026 г.
Эксплуатируется в реальных атакахДа — внесена в каталог CISA KEV

CVE-2026-87902 — это неаутентифицированная уязвимость обхода пути и локального включения файлов (LFI) в ядре WordPress, затрагивающая каждую версию WordPress, выпущенную с 2016 года (4.7.0 – 7.1.1). Атакующему не требуется учётная запись или аутентификация. Сформировав вредоносный параметр запроса pagename, атакующий может заставить механизм разрешения шаблонов страниц WordPress включить любой читаемый .php-файл за пределами каталога активной темы. При определённых условиях на сервере (PHP register_argc_argv = On и читаемый pearcmd.php) уязвимость может быть повышена до удалённого выполнения кода (RCE).


Уязвимые версии

ВеткаИсправленная версия
4.7.x4.7.37
5.0.x5.0.29
5.3.x5.3.25
5.9.x5.9.18
6.0.x6.0.16
6.6.x6.6.9
6.9.x6.9.9
7.0.x7.0.6
7.1.x7.1.2

Технические детали

Первопричина

Уязвимость находится в get_page_template() в wp-includes/template.php. Когда присутствует переменная запроса pagename, функция формирует page-{$pagename}.php, но не вызывает validate_file() для этого значения, чтобы проверить наличие обхода каталога. Затем имя файла-кандидата передаётся в locate_template(), которая объединяет его с путём каталога темы и проверяет только file_exists() — она не проверяет, что разрешённый путь остаётся внутри каталога темы. Поэтому имя шаблона, содержащее ../, может разрешиться в читаемый PHP-файл за пределами активной темы, который будет включён и выполнен.

Цепочка вызовов

GET /?page_id=<опубликованная страница>&pagename=<дважды закодированная полезная нагрузка обхода> → WP_Query разрешает page_id, сопоставляет опубликованную страницу (избегает 404) → get_page_template() выполняет urldecode() для pagename, формирует page-{$pagename}.php → locate_template() объединяет кандидата с каталогом темы, разрешает через file_exists() → template-loader выполняет realpath() + include

Обход двойным кодированием

WordPress применяет sanitize_title_for_query() к pagename, которая заменяет литеральные точки (.) на дефисы (-), чтобы блокировать обход. Она работает с уже один раз декодированным вводом и не декодирует рекурсивно. Атакующий отправляет %252e%252e%252f (дважды закодированный ../):

  1. Веб-сервер декодирует один раз: %252e → %2e, %252f → %2f
  2. sanitize_title_for_query() видит %2e%2e%2f (без литеральных точек) и пропускает его
  3. get_page_template() внутри снова вызывает urldecode(): %2e%2e%2f → ../
  4. Последовательность обхода становится действенной

Предусловия эксплуатации

  1. Активная тема (родительская или дочерняя) содержит каталог верхнего уровня, начинающийся с page- (например, page-templates/).
  2. Существует хотя бы одна опубликованная страница, ID которой можно передать как page_id.
  3. Целевой файл должен заканчиваться на .php (WordPress добавляет расширение).

Примечание для Windows-хостов: Win32 нормализует .. лексически, поэтому обход может сработать даже при отсутствии каталога page-. В Linux этот каталог должен реально существовать.

Повышение до RCE через PEAR

Условия:

  • PHP register_argc_argv установлен в On
  • На сервере существует читаемый pearcmd.php

Злоумышленник подключает pearcmd.php через LFI и злоупотребляет его командой config-create, чтобы записать PHP-файл на сервер, а затем снова подключает этот файл через LFI для выполнения произвольных команд.


Происхождение и раскрытие CVE

Первооткрыватель

CVE-2026-87902 был обнаружен и о нём сообщил Роберт Рессл (Robert Ressl), исследователь безопасности из Швейцарии.

Процесс раскрытия

Сообщено через программу WordPress на HackerOne в июле 2026 года. Команда безопасности WordPress координировала исправление и выпустила его вместе с WordPress 7.1.2 22 сентября 2026 года.

Хронология раскрытия

ДатаСобытие
Июль 2026Роберт Рессл сообщает об уязвимости через программу WordPress на HackerOne
22 сентября 2026Выпущен WordPress 7.1.2 с исправлением; опубликовано уведомление
22 сентября 2026Выпущены бэкпорты безопасности для веток с 7.0 по 4.7
23 сентября 2026Злоумышленники начинают зондировать уязвимые сайты
25 сентября 2026CISA добавляет CVE-2026-87902 в каталог KEV

Возможности инструмента

ВозможностьОписание
Определение версииОпределяет версию WordPress через meta generator, RSS-ленту, OPML, readme.html, ?ver= в ресурсах
Умный вердикт по версииИспользует сопоставление исправленных версий, чтобы определить, входит ли цель в уязвимый диапазон
Обнаружение темыИзвлекает slug активной темы, определяет родительскую тему, находит каталоги page-*
Обнаружение ID страницНаходит действительные ID страниц через REST API, класс тела page-id-, короткие ссылки
Валидация LFI-оракулаИспользует безопасные файлы, такие как wp-links-opml.php и wp-trackback.php, в качестве оракулов с отрицательными контролями
Двойное кодирование обходаАвтоматически дважды процентно кодирует / и ., чтобы обойти sanitize_title_for_query()
Эксплуатация RCE через PEARПробует распространённые пути PEAR, записывает и выполняет файлы-маркеры через config-create
Массовое сканированиеМногопоточное параллельное сканирование списков целей
Вывод результатовСохраняет результаты в vuln_lfi.txt и vuln_lfitorce.txt

Требования

  • Python 3.10+
  • библиотека requests

pip install requests


Использование

Запуск

python3 CVE-2026-87902.py

Интерактивное меню:

[1] Одиночное сканирование LFI [2] Одиночное сканирование LFI + RCE [3] Массовое сканирование LFI [4] Массовое сканирование LFI + RCE [5] Выход

Сканирование одной цели (только LFI)

Выберите [1], введите URL цели:

url > https://target.example.com

Сканирование одной цели (LFI + RCE)

Выберите [2], введите URL и команду (по умолчанию id):

url > https://target.example.com cmd > id

Массовое сканирование

Выберите [3] или [4], введите файл, содержащий URL целей (по одному в строке, # для комментариев):

file > targets.txt

Выходные файлы

ФайлСодержимое
vuln_lfi.txtПодтверждённые цели с LFI
vuln_lfitorce.txtЦели с успешной RCE

Конфигурация

TIMEOUT = 8 # Таймаут запроса (секунды) THREADS = 200 # Количество параллельных потоков для массового сканирования USE_ALL_ORACLES = False # Использовать все оракулы (точнее, но медленнее)


Устранение уязвимости

Скачать инструмент