В ядре WordPress обнаружили критическую уязвимость, позволяющую выполнить код удалённо и без всякой авторизации. Ей дали имя wp2shell, и под ударом, по оценке исследователей, более 500 миллионов сайтов. Нашёл её Адам Кьюс из команды Assetnote компании Searchlight Cyber.
В чём суть
Проблема — в путанице между batch-маршрутизацией REST API и обработкой запросов, из-за чего открывается SQL-инъекция, а следом и выполнение произвольного кода. Самое неприятное: для атаки не нужны ни авторизация, ни уязвимые плагины, ни особая конфигурация сайта. Достаточно, чтобы установка WordPress подходящей версии была просто доступна из сети.
Уязвимости присвоены два идентификатора: CVE-2026-60137 — это SQL-инъекция, и CVE-2026-63030 — выполнение кода через batch-маршрут.
Какие версии затронуты
- 6.8.5 и раньше — не затронуты (версия 6.8 подвержена только SQL-инъекции, но не всей цепочке до RCE);
- 6.9.0 – 6.9.4 — уязвимы;
- 7.0.0 – 7.0.1 — уязвимы;
- 7.1 beta — уязвима.
Патчи
Исправления уже вышли:
- WordPress 7.0.2 — полностью закрывает обе уязвимости;
- WordPress 6.9.5 — бэкпорт исправлений;
- WordPress 6.8.6 — бэкпорт фикса SQL-инъекции.
Учитывая масштаб, WordPress.org не стал ждать, пока администраторы обновятся вручную, и принудительно разослал обновление через систему автообновлений на все сайты с уязвимыми версиями.
Временные меры
Пока патч не установлен, можно подстраховаться: поставить плагин, блокирующий анонимный доступ к REST API, либо закрыть на уровне WAF конечные точки /wp-json/batch/v1 и ?rest_route=/batch/v1. Но специалисты подчёркивают: с учётом того, что эксплуатация не требует ни одного клика и охватывает огромную поверхность атаки, обновляться нужно немедленно, а обходные меры — лишь затычка.