Анонимна HTTP заявка може да изпълни код на сайт под WordPress. Грешката е в самото ядро, така че дори чиста инсталация без никакви плъгини е уязвима.

Всеки сайт с версии 6.9 и 7.0 беше застрашен до петък, когато WordPress пусна версии 6.9.5 и 7.0.2 и активира т.нар. принудителни актуализации чрез системата си за автоматично обновяване.

Адам Кюс от Assetnote, подразделението за управление на повърхността за атаки на Searchlight Cyber, откри дефекта и го докладва чрез програмата HackerOne на WordPress. Техническият анализ, публикуван под името wp2shell, посочва, че атаката няма „никакви предварителни условия и може да бъде експлоатирана от анонимен потребител“.

За момента компанията не разкрива техническите подробности и вместо това е създала инструмент за проверка на адрес wp2shell.com, за да могат собствениците да тестват своите инсталации.

WordPress издаде версии 6.9.5 и 7.0.2 на 17 юли 2026 г., отстранявайки уязвимост за отдалечено изпълнение на код (RCE) преди аутентификация в ядрото, която може да бъде задействана от анонимна заявка срещу инсталация по подразбиране без плъгини. Засегнати са два диапазона от версии: 6.9.0 до 6.9.4 (коригирана в 6.9.5) и 7.0.0 до 7.0.1 (коригирана в 7.0.2).

WordPress не уточнява дали принудителното обновяване достига до сайтове, които са изключили автоматичните актуализации. Препоръчително е да проверите коя версия реално използвате, вместо да предполагате, че корекцията е била инсталирана.

Версията 7.1 beta2 съдържа същата корекция за сигурност. Сайтовете, които все още използват версия 6.8, също имат чакащо обновяване, но версия 6.8.6 е насочена към втора уязвимост от тип SQL инжекция в същия кръг от корекции, докладвана от друг екип.

Публикацията на Searchlight оценява, че над 500 милиона уебсайта работят с WordPress. Тази цифра представлява общата база от инсталации, а не уязвимата част от тях: компрометираният код съществува само от версия 6.9 нататък, а версия 6.9 беше пусната на 2 декември 2025 г. Следователно всеки засегнат сайт работи с версия, която е на по-малко от осем месеца, като нито един от докладите не посочва колко точно сайтове обхваща това.

WordPress предоставя повече информация за класа на грешката, отколкото самите изследователи. В съобщението за новата версия откритието на Кюс е описано като „проблем със смесване на партидни маршрути (batch-route confusion) в REST API и SQL инжекция, водещ до отдалечено изпълнение на код“. Версията коригира една критична уязвимост и една с висока степен на опасност, но WordPress не уточнява коя коя е.

Страницата с версиите описва трите файла, променени в 7.0.2 за отстраняване на двата дефекта: /wp-includes/rest-api/class-wp-rest-server.php, /wp-includes/class-wp-query.php и /wp-includes/rest-api.php. Партидната крайна точка не е нова. WordPress я включва от версия 5.6 през ноември 2020 г. и форматът на заявките е публично документиран оттогава. Нищо публикувано до момента не обяснява какво точно се е променило във версия 6.9, за да се отвори тази пролука.

Нито един от докладите не съдържа CVE идентификатор или CVSS оценка, като до 18 юли не се беше появил запис в регистъра на CVE. Скенерите за уязвимости, работещи с CVE кодове, няма да засекат този проблем, а CISA изисква CVE идентификатор, преди да може да добави каквото и да е към каталога с известни експлоатирани уязвимости (KEV). Поради това проследяването трябва да става по номера на версията.

Всички временни мерки за защита, предлагани от Searchlight, се свеждат до ограничаване на анонимния достъп до партидната крайна точка. Има три опции, които са само временно решение до инсталирането на обновяването и могат да нарушат легитимни интеграции:

  • Блокиране чрез уеб филтър (WAF) както на пътя /wp-json/batch/v1, така и на параметъра rest_route=/batch/v1. От компанията изрично подчертават, че и двата адреса трябва да бъдат спрени, тъй като правило, покриващо само първия път, оставя отворен алтернативния маршрут чрез заявка.
  • Деактивиране на WP REST API, което изцяло спира неудостоверения достъп до REST интерфейса.
  • Инсталиране на малък бърз плъгин, който прихваща и отхвърля анонимни заявки към /batch/v1 при събитието rest_pre_dispatch.

До 18 юли няма съобщения за опити за експлоатиране. Тъй като липсва CVE идентификатор за маркиране и няма публична сигнатура за разпознаване, все още никой не извършва масово търсене.

Масовата експлоатация на WordPress вече се е превърнала в индустрия. Преди сървърът им да изтече в мрежата през юни, само един дефект в плъгин за кеширане е осигурил достъп на групата WP-SHELLSTORM до над 17 000 сайта по техни собствени данни. Тази уязвимост вече беше публично известна, коригирана и работеше само при настройки, различни от тези по подразбиране.

Когато Drupal отстрани уязвимост от тип SQL инжекция за анонимни потребители в собственото си ядро през май, Searchlight превърна тази публична корекция в подробен анализ с два работещи доказателствени концептуални кода (PoC) в рамките на същия ден. Това беше чужда грешка и чужда корекция, и нищо не задължава компанията да направи същото със своята. Но един ден беше времето, което им отне тогава, и хората, които определят това темпо, са същите, които сега се надяват, че мълчанието ще спечели време на администраторите.

Ядрото на WordPress е с отворен код, а версии 7.0.1 и 7.0.2 се намират в публичния архив с версии, така че сравнението е достъпно за всеки желаещ. Това е клопката пред всеки проект с отворен код: не можеш да доставиш корекцията, без да доставиш и картата към уязвимостта, а единственият лост за въздействие остава скоростта, с която обновяването достига до сайтовете, преди някой да го е разчел.

WordPress задейства този лост в петък. Трафикът към batch/v1 ще покаже кога ще пристигнат атакуващите, а собствената статистика за версиите на WordPress ще покаже дали корекцията за сигурност е стигнала първа. Само едно от тези две числа влиза в новините.