17 июля 2026 года команда безопасности WordPress выпустила экстренные обновления ядра системы, закрывающие две уязвимости. Первая из них - неавторизованная SQL-инъекция, зарегистрированная как CVE-2026-60137. Вторая - CVE-2026-63030, которая при объединении с первой позволяет неавторизованному злоумышленнику удалённо выполнить код на сервере. Обе проблемы получили высокие оценки по шкале CVSS: 7,5 и 9,8 соответственно. Патчи вышли для веток 6.8, 6.9 и 7.0.
Детали уязвимостей
SQL-инъекция затрагивает параметр "author__not_in" в классе WP_Query. Уязвимость присутствует во всех версиях WordPress от 6.8 до 7.0.1 включительно. Исследователи Tin Pham, Trong Pham и haongo обнаружили, что из-за недостаточной фильтрации вводимых данных в SQL-запрос можно подставить произвольные команды. В обычных условиях этот параметр недоступен для внешнего воздействия - он обрабатывается только внутри системы через массивы целых чисел. Однако вторая уязвимость позволяет обойти это ограничение.
Критическая проблема CVE-2026-63030 заключается в путанице маршрутов на конечной точке пакетной обработки REST API ("/wp-json/batch/v1"). Её обнаружил Адам Кьюс из Searchlight Cyber. Механизм batch-запросов позволяет отправить несколько подзапросов в одном вызове. Из-за ошибки синхронизации индексов во внутренних массивах обработчика проверка подзапроса выполняется по другой схеме, чем его последующее исполнение. Это приводит к тому, что злоумышленник может вложить один batch-запрос в другой, сместить соответствие маршрутов и передать нефильтрованное значение в уязвимый параметр "author_exclude", который затем превращается в SQL-инъекцию.
В цепочке атак используются обе уязвимости. Сначала через REST API отправляется специально сформированный пакет, который заставляет сервер обрабатывать подзапросы с перепутанными обработчиками. В результате значение, которое должно проверяться как массив целых чисел, попадает напрямую в SQL-запрос без фильтрации. Это позволяет выполнить произвольный SQL-код, а при определённых условиях - получить полный контроль над сервером. Поскольку для атаки не требуется аутентификация, ею потенциально могут воспользоваться любые посетители сайта.
Уязвимости затрагивают следующие версии: SQL-инъекция - WordPress 6.8.0-6.8.5, 6.9.0-6.9.4, 7.0.0-7.0.1. Критическая проблема, связанная с путаницей маршрутов, - только ветки 6.9 и 7.0 (6.9.0-6.9.4 и 7.0.0-7.0.1). Версии ниже 6.8 не подвержены ни одной из этих угроз. Исправления выпущены в сборках 6.8.6, 6.9.5 и 7.0.2. Команда WordPress включила принудительные автоматические обновления для всех сайтов, где эта функция активна. Однако администраторам настоятельно рекомендуется самостоятельно проверить версию в панели управления и убедиться, что обновление установлено.
На момент публикации технические детали эксплуатации не раскрыты. Исследователи из Searchlight Cyber создали проверочный сайт wp2shell.com, позволяющий владельцам сайтов протестировать наличие уязвимости. Компания Rapid7 отметила, что, учитывая открытый исходный код WordPress и возможности современных моделей ИИ, публичный эксплойт может появиться в ближайшее время. В логах Patchstack уже зафиксированы попытки эксплуатации в дикой природе. Cloudflare уточнила, что уязвимый код срабатывает, если на сервере не используется постоянный кэш объектов.
В качестве временных мер защиты, пока обновление не установлено, рекомендуется заблокировать на брандмауэре пути "/wp-json/batch/v1" и параметр "rest_route=/batch/v1", а также отключить неавторизованный доступ к REST API с помощью плагинов. Эти меры могут нарушить работу легитимных запросов, поэтому их следует рассматривать как краткосрочное решение. Некоторые поставщики решений безопасности уже выпустили правила брандмауэра, защищающие от атаки.
Производитель подчёркивает, что обновление является единственным надёжным способом защиты. Автоматические обновления распространяются поэтапно, поэтому администраторам стоит проверить статус каждого публичного сайта вручную. Уязвимости были обнаружены в рамках ответственного раскрытия, и команда WordPress поблагодарила исследователей за сотрудничество.
Ситуация в очередной раз демонстрирует, что даже в зрелых проектах с многолетней историей сохраняются классические ошибки обработки входных данных. SQL-инъекции остаются одной из самых распространённых угроз, а их сочетание с ошибками маршрутизации в REST API создаёт почву для критических цепочек атак. Владельцам сайтов на WordPress рекомендуется как можно быстрее установить патчи и рассмотреть использование runtime-защиты на уровне приложения для блокировки подобных инъекций до выхода исправлений.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-60137
- https://www.cve.org/CVERecord?id=CVE-2026-63030
- https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-fpp7-x2x2-2mjf
- https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-ff9f-jf42-662q
- https://www.rapid7.com/blog/post/etr-cve-2026-63030-wp2shell-a-critical-remote-code-execution-vulnerability-in-wordpress-core/
- https://www.aikido.dev/blog/unauthenticated-rce-in-wordpress-wp2shell
- https://patchstack.com/articles/unauthenticated-sql-injection-in-wordpress-core-fixed-in-7-0-2/
- https://www.wordfence.com/blog/2026/07/psa-wordpress-core-patched-unauthenticated-remote-code-execution-vulnerability-chain/