CVE-2026-97637: обход аутентификации в JSON API Auth для WordPress
В плагине JSON API Auth для WordPress (версии до 3.1.2 включительно) обнаружена критическая уязвимость обхода аутентификации через кэшированный ответ эндпоинта generate_auth_cookie(). Атакующий без аутентификации может получить действующую сессионную cookie администратора и полностью захватить контроль над сайтом. Уровень опасности — 9.8 (CRITICAL).
Подробности
Уязвимость затрагивает все версии плагина parorrey JSON API Auth вплоть до 3.1.2 включительно. Причина кроется в механизме кэширования родительского плагина PI-Media/json-api: результаты обработки контроллеров сохраняются в transients, ключ которых формируется исключительно по URI и строке запроса. При этом HTTP-метод и тело POST-запроса полностью игнорируются. Из-за этого эндпоинт generate_auth_cookie() — который в теле своего JSON-ответа возвращает действующую cookie logged_in, сгенерированную функцией wp_generate_auth_cookie() — начинает отдавать закэшированный аутентифицированный ответ любому последующему неаутентифицированному GET-запросу по тому же URI. Злоумышленник получает валидную сессионную cookie администратора и может использовать её для полной аутентификации под учётной записью администратора, в том числе через эндпоинт get_currentuserinfo того же плагина и любые контроллеры, работающие с cookie-аутентификацией. Для успешной эксплуатации необходимо одновременное выполнение нескольких условий: родительский плагин PI-Media/json-api должен быть установлен и активен с включённым контроллером Auth, а легитимный администратор должен был в течение предшествующих 24 часов (времени жизни кэша) отправить POST-запрос на /api/auth/generate_auth_cookie/. Примечательно, что номинальная проверка обязательного использования HTTPS в файле Auth.php легко обходится добавлением параметра insecure=cool в запрос.Что делать
Основная рекомендация — как можно скорее обновить плагин JSON API Auth до версии выше 3.1.2, если такая доступна, либо временно отключить плагин до выхода исправления. Поскольку уязвимость зависит от родительского плагина PI-Media/json-api, следует также проверить его наличие и актуальность, а при отсутствии необходимости — деактивировать. Дополнительные меры митигации: ограничить доступ к эндпоинтам /api/auth/* на уровне веб-сервера или WAF, запретив внешние GET-запросы к ним; отключить кэширование ответов контроллеров для аутентификационных маршрутов; обеспечить принудительное использование HTTPS и не полагаться на параметр insecure, который может быть подделан. Рекомендуется провести аудит логов на предмет обращений к /api/auth/generate_auth_cookie/ методом GET со стороны неаутентифицированных клиентов и при обнаружении подозрительной активности немедленно сменить пароли администраторов и инвалидировать активные сессии.Итог
CVE-2026-97637 — критическая уязвимость обхода аутентификации, позволяющая захватить сайт на WordPress без каких-либо учётных данных, при наличии определённых условий на стороне целевого ресурса. Учитывая простоту эксплуатации и максимальную оценку CVSS, администраторам сайтов с установленным JSON API Auth следует немедленно принять меры: обновить или отключить плагин, а также проверить систему на признаки компрометации.Источник: CVE Project (cvelistV5)
