
wp2shell — PoC цепочки Pre-Auth RCE в ядре WordPress для CVE-2026-63030 и CVE-2026-60137
Если вы цените мою работу, вы можете поддержать проект через USDT (TRC20): TQBA72kakjCZLnJt8fJYcD7dyQCEpzNtVN
wp2shell — это исследовательский Proof-of-Concept, демонстрирующий цепочку уязвимостей до аутентификации в ядре WordPress, объединяющую:
WP_QueryЦепочка демонстрирует, как эти уязвимости можно объединить, чтобы перейти от неаутентифицированного запроса к REST API к SQL-инъекции, повышению привилегий, созданию учётной записи администратора и, в конечном итоге, к аутентифицированному удалённому выполнению кода.
[!WARNING]
Только авторизованные исследования безопасности
Этот проект предназначен для:
- Исследования уязвимостей
- Защитной валидации
- Авторизованного тестирования на проникновение
- Лабораторий безопасности
- CTF и образовательных сред
Тестируйте только те системы, которыми вы владеете или на оценку которых у вас есть явное письменное разрешение.
Не используйте этот проект против сторонней инфраструктуры без авторизации.
wp2shell — это единый инструмент исследования безопасности ядра WordPress,
предназначенный для изучения взаимодействия двух уязвимостей:```text
CVE-2026-63030
|
v
REST API Batch Route Confusion
|
v
Validation / Dispatch Confusion
|
v
CVE-2026-60137
|
v
WP_Query SQL Injection
|
v
Blind SQL Access
|
v
Application / Object-State Manipulation
|
v
Privilege Escalation
|
v
Administrator Account Creation
|
v
Authenticated Code Execution
The PoC реализован как исследовательский инструмент на Python и использует стандартную библиотеку Python без необходимости в сторонних пакетах Python.
---
# Цепочка уязвимостей
Проект объединяет две уязвимости ядра WordPress.```text
Unauthenticated Request
|
v
+----------------------+
| CVE-2026-63030 |
| REST Batch Route |
| Confusion |
+----------+-----------+
|
v
Validation Confusion
|
v
+----------------------+
| CVE-2026-60137 |
| WP_Query SQLi |
+----------+-----------+
|
v
Blind SQLi
|
v
Application-State Abuse
|
v
Privilege Escalation
|
v
Administrator Access
|
v
Authenticated RCE
```
Важным свойством безопасности является взаимодействие между двумя
уязвимостями, а не каждая из уязвимостей по отдельности.
---
# CVE-2026-63030
## Путаница маршрутов пакетного REST API
Первая уязвимость затрагивает обработку запросов через
конечную точку пакетной обработки REST API WordPress.
Реализация пакетной обработки хранит информацию о сопоставлении и проверке
запросов в параллельных структурах, индексируемых по позиции запроса.
Некорректный подзапрос может привести к рассинхронизации этих структур.
Это создаёт состояние диспетчеризации со смещением на единицу (off-by-one),
при котором более поздний запрос может
обрабатываться с использованием обработчика или контекста проверки,
связанного с другим запросом.
Концептуально:```text
Request A
|
+-- validation entry
+-- matching entry
|
v
Malformed request
|
+-- internal state becomes desynchronized
|
v
Request B
|
+-- unexpected handler / validation context
```
PoC выполняет поведенческие проверки, чтобы определить, действительно ли
путаница маршрутов достижима.
---
# CVE-2026-60137
## SQL-инъекция WP_Query
Вторая уязвимость затрагивает путь обработки SQL в `WP_Query`.
После установления примитива путаницы маршрутов управляемые атакующим
входные данные могут достичь уязвимого пути запроса.
PoC демонстрирует результирующую SQL-инъекцию с помощью слепого
дифференциального тестирования.
Исследовательский функционал включает:
* Подтверждение методом Boolean-blind
* Дополнительное подтверждение на основе времени
* Снятие отпечатка базы данных
* Извлечение поддерживаемых скалярных значений
* Исследование пользовательских данных WordPress
---
# Как работает цепочка
## 1. Путаница маршрутов REST Batch
Неаутентифицированный запрос достигает конечной точки WordPress REST Batch.
Некорректный подзапрос batch приводит к рассинхронизации внутреннего
состояния сопоставления и проверки запросов.
Последующий запрос вследствие этого может быть обработан с использованием
непредусмотренного контекста.
---
## 2. SQL-инъекция
Примитив путаницы маршрутов предоставляет путь, необходимый для второй
уязвимости.
Управляемое атакующим значение может достичь уязвимого пути обработки
`WP_Query`.
Это создаёт примитив слепой SQL-инъекции.
---
## 3. Слепое извлечение данных через SQL
SQL-инъекция может использоваться как канал извлечения данных методом
boolean-blind.
PoC содержит функционал для исследования информации о базе данных и
поддерживаемой информации о пользователях WordPress.
---
## 4. Манипуляция состоянием приложения
Цепочка использует управляемые базой данных результаты, чтобы влиять на
объекты приложения WordPress и последующую обработку.
Это предоставляет примитивы, необходимые для этапа повышения привилегий.
---
## 5. Эскалация через changeset
Цепочка использует обработку changeset в WordPress для установления
контекста выполнения администратора.
Сфабрикованный объект `customize_changeset` может участвовать в
последовательности повышения привилегий.
---
## 6. Повторный вход через хуки
Цепочка повторно входит в обработку запросов WordPress через жизненный
цикл запросов приложения.
Это позволяет последующей обработке API выполняться в контексте с
повышенными привилегиями.
---
## 7. Создание учётной записи администратора
```