wp2shell: доавторизационное выполнение кода в ядре WordPress угрожает 500 млн сайтов

В ядре 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. Но специалисты подчёркивают: с учётом того, что эксплуатация не требует ни одного клика и охватывает огромную поверхность атаки, обновляться нужно немедленно, а обходные меры — лишь затычка.