Теперь даже случайный гость может стать полноправным хозяином ваших данных.

Спор вокруг очередной проблемы в популярном экосистемном компоненте WordPress быстро вышел за рамки короткого уведомления и превратился в подробный разбор с рабочей эксплуатацией. Речь идёт о CVE-2025-9501 в W3 Total Cache, который установлен более чем на 1 млн сайтов.
О находке сначала сообщил сервис WPScan, описав её как внедрение команд без аутентификации в версиях W3 Total Cache до 2.8.13. Команда RCE Security решила проверить, насколько реалистична атака, изучила обработку кэша и собрала эксплойт, отметив автора первоначального сообщения под ником «wcraft».
Причина уязвимости связана с обработкой специальных фрагментов в закэшированной странице. Механизм динамических тегов опирается на значение константы W3TC_DYNAMIC_SECURITY, заданной в wp-config.php. Если атакующему известно это секретное значение, становится возможна подмена содержимого так, чтобы оно дошло до участка, где выполняется eval, и привело к удалённому выполнению кода.
Стоит отметить, что атаки без авторизации возможны далеко не всегда. По описанию RCE Security, для сценария без входа на сайт должны совпасть сразу несколько условий. Так, на сайте должны быть включены комментарии для неавторизованных пользователей, а также активирован Page Cache, который в плагине по умолчанию отключён, но является ключевой функцией W3 Total Cache. Если хотя бы одно из этих требований не выполнено, риск снижается, а в ряде конфигураций проблема фактически превращается в уязвимость после авторизации.
Отдельно отмечается история с попытками исправления. В версиях 2.8.13, 2.8.14 и 2.8.15 разработчики добавляли очистку опасных фрагментов, но из-за логики замены токена и различий в регулярных выражениях фильтр удавалось обходить. В релизе 2.9.1, как указывает разбор, изменений, закрывающих вектор атаки, не появилось, поэтому эксплуатация по-прежнему возможна при наличии нужных предпосылок.