
wp2shell — Pre-authentication RCE in WordPress Core (CVE-2026-60137 + CVE-2026-63030). Chains an SQL injection in author__not_in with batch-route confusion for unauthenticated remote code execution on WP 6.9.0–6.9.4 / 7.0.0–7.0.1.
Удалённое выполнение кода без аутентификации в ядре WordPress.
Объединяет CVE-2026-60137 (SQL-инъекция в параметрах author__not_in / author_exclude в WP_Query) с CVE-2026-63030 (путаница пакетных маршрутов в REST API) для неаутентифицированного RCE.
| Диапазон | Статус |
|---|---|
| <= 6.8.5 | Не затронуто (нет путаницы пакетов) |
| 6.8.0 - 6.8.5 | Только SQLi, без RCE |
| 6.9.0 - 6.9.4 | Уязвимо |
| 7.0.0 - 7.0.1 | Уязвимо |
| 7.0.2+ / 6.9.5+ | Исправлено |
python3 poc.py -u TARGET_URL
python3 poc.py -u TARGET_URL --sql "SELECT user_pass FROM wp_users LIMIT 1"
python3 poc.py -u TARGET_URL -c "id"
| Аргументы | Поведение |
|---|---|
-u TARGET_URL | Проверка уязвимости (временной зонд) |
-u TARGET_URL --sql "SQL" | Извлечение скаляра через слепую SQLi |
-u TARGET_URL -c "CMD" | Полная цепочка RCE |
/batch/v1) для десинхронизации обработки запросов и обхода аутентификацииauthor_exclude через оракул времени SLEEP()Проверка уязвимости → Создание записей oEmbed → Извлечение имени таблицы (слепая SQLi)
→ Извлечение ID администратора (слепая SQLi) → Извлечение ID записей кэша (слепая SQLi)
→ Внедрение отравленного набора изменений через пакет → Создание администратора
→ Вход → Загрузка командного плагина → Выполнение команды → Очистка
author__not_in: обнаружена TF1T, dtro, haongo