CVE-2026-97637: JSON API Auth <= 3.1.2 - Unauthenticated Authentication Bypass via Cached 'generate_auth_cookie' Response
The JSON API Auth plugin for WordPress is vulnerable to Authentication Bypass via Cached Session Cookie Disclosure in all versions up to, and including, 3.1.2. The vulnerability exists because the required PI-Media/json-api parent plugin caches controller dispatch results in transients keyed solely by URI and query string, ignoring HTTP method and POST body; this causes the generateauthcookie() endpoint — which embeds a live WordPress loggedin cookie produced by wpgenerateauthcookie() directly in its JSON response body — to serve that cached authenticated response to any subsequent unauthenticated GET request to the same URI. This makes it possible for unauthenticated attackers to retrieve a valid Administrator loggedin session cookie from the cached response and use it to fully authenticate as the site Administrator, including via the same plugin's getcurrentuserinfo endpoint and any cookie-authenticated controller action. Exploitation requires the PI-Media/json-api parent plugin to be installed and active with the Auth controller enabled, and a legitimate Administrator must have POSTed to /api/auth/generateauthcookie/ within the preceding 24-hour cache TTL; the nominal HTTPS enforcement gate present in Auth.php is trivially bypassed by supplying insecure=cool as a request parameter.
Affected Software
Event History
Frequently Asked Questions
Which sites are exposed to this issue?
A site is exposed only if the PI-Media/json-api parent plugin is installed and active and its Auth controller is enabled. The vulnerable JSON API Auth versions are all releases up to and including 3.1.2.
What conditions must occur before an unauthenticated attacker can obtain an administrator session?
An Administrator must have submitted a POST request to /api/auth/generate_auth_cookie/ during the preceding 24-hour cache TTL. After that response is cached, an unauthenticated attacker can request the same URI with GET and receive the cached response containing the live logged_in cookie.
Does exploitation require an attacker account or user interaction?
No. The described attack is unauthenticated and can be performed remotely once a qualifying administrator authentication-cookie response has been cached.
How can an administrator determine whether the risky cached response may exist?
Review whether an Administrator has POSTed to /api/auth/generate_auth_cookie/ within the last 24 hours while the required parent plugin was active and the Auth controller enabled. That is the condition described for an authenticated response to remain available from the transient cache.
What can be done if the affected plugin cannot be patched immediately?
Disable the Auth controller or deactivate the PI-Media/json-api parent plugin, since both are required for exploitation. Cached responses remain relevant for the stated 24-hour TTL, so administrator sessions generated through the endpoint during that period should be treated as potentially disclosed.