Skip to main content

JSON API Auth CVE-2026-97637

| EUVDEUVD-2026-91259 CRITICAL
Improper Authentication (CWE-287)
2026-10-02 Wordfence GHSA-pmrp-gw7x-5x4r
9.8
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Find site running JSON API Auth + json-api
  2. Delivery
    Wait for admin POST to generate_auth_cookie
  3. Exploit
    Send unauthenticated GET to cached URI with insecure=cool
  4. Execution
    Extract Administrator logged_in cookie from JSON
  5. Impact
    Reuse cookie to authenticate as Administrator

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK

2 techniques across 2 tactics: Defense Evasion, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a specific stack and timing window, not merely network access: (1) the PI-Media/json-api parent plugin must be installed and active with the Auth controller enabled, since JSON API Auth is a dependent add-on; (2) a legitimate Administrator must have POSTed to /api/auth/generate_auth_cookie/ within the preceding 24-hour transient cache TTL, because the exploit harvests a cached authenticated response rather than minting a new cookie. The nominal HTTPS enforcement in Auth.php does NOT limit exploitation - it is trivially bypassed by supplying insecure=cool as a request parameter. The practical limiting factors are therefore the two-plugin dependency and the opportunistic 24-hour cache window after admin activity; no authentication or user interaction is needed from the attacker to retrieve the cookie via a GET request.

Impact

The input CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N, C:H/I:H/A:H = 9.8) presents this as a trivial remote unauthenticated full-compromise, but that AC:L rating understates a real-world limiter the description makes explicit: exploitation depends on a legitimate Administrator having POSTed to /api/auth/generate_auth_cookie/ within the preceding 24-hour transient cache TTL. That precondition is outside the attacker's control and is closer to a race/timing dependency than low complexity, which in my assessment warrants AC:H (CVSS 8.1). Exploitation status is 'no public exploit identified at time of analysis' - this is NOT in CISA KEV and no POC is referenced, so the 9.8 should not be read as active-exploitation urgency. No EPSS score was provided, so exploitation-probability cannot be weighed, and no SSVC decision data was supplied. Net: a genuinely high-impact authentication-bypass (full Administrator takeover with cookie reuse) in a specific plugin stack, but gated by both a two-plugin dependency and an opportunistic timing window, making it a real but conditional priority rather than a mass-exploitable internet-wide emergency. Reported by Wordfence; patch status for a fixed version beyond 3.1.2 is not confirmed in the provided data.

Exploit ScenarioDerived

An attacker identifies a WordPress site running both the JSON API Auth plugin (≤3.1.2) and the required PI-Media/json-api parent plugin with the Auth controller enabled. After a legitimate administrator authenticates by POSTing to /api/auth/generate_auth_cookie/, the dispatch result is cached in a transient keyed only by URI and query string; the attacker then sends an unauthenticated GET to the same URI (bypassing the HTTPS gate with insecure=cool) and reads the cached response containing a live Administrator logged_in cookie. No public exploit code is referenced at time of analysis.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 02, 2026

Authentication bypass in the WordPress plugin JSON API Auth (all versions up to and including 3.1.2) lets unauthenticated remote attackers harvest a live Administrator logged_in cookie from a cached JSON response and use it to take over the site. The underlying defect sits in the required PI-Media/json-api parent plugin, whose controller-dispatch transient cache is keyed only by URI and query string with HTTP method and POST body ignored, so the authenticated /api/auth/generate_auth_cookie/ response - which embeds a wp_generate_auth_cookie() session cookie directly in its JSON body - is replayed to any subsequent unauthenticated GET, with the plugin's nominal HTTPS enforcement trivially defeated by passing insecure=cool. Our independent assessment keeps the full confidentiality and integrity impact of the vendor vector but treats the access complexity as High (base 8.1 rather than 9.8) because exploitation is opportunistic and conditional: both plugins must be installed and active with the Auth controller enabled, and a legitimate Administrator must have POSTed to the cookie-generation endpoint within the preceding 24-hour transient TTL; no public exploit identified at time of analysis.

RemediationAI

The provided data contains a WordPress.org plugin Trac changeset for json-api-auth (https://plugins.trac.wordpress.org/changeset?reponame=&old=3712939%40json-api-auth&new=3712939%40json-api-auth) indicating an upstream fix has been committed, but a released fixed version beyond 3.1.2 is not independently confirmed here, so treat patch status as upstream fix available (changeset/commit) with no confirmed patched release; update the plugin from the WordPress.org repository or the vendor page as soon as a release newer than 3.1.2 appears and verify it contains the Auth controller change. Because the credential-leaking cache lives in the required PI-Media/json-api parent plugin, patching only the add-on may be insufficient: update or remove the parent plugin as well, or apply a code change so dispatch results are no longer cached by URI alone - for example removing the transient caching for Auth controller output or adding HTTP method and body to the cache key - accepting the performance cost of losing that cache. Immediate compensating controls, in order of preference: deactivate JSON API Auth and its Auth controller entirely (side effect: JSON API authentication and any clients using generate_auth_cookie or get_currentuserinfo stop working); block or restrict GET requests to /api/auth/generate_auth_cookie/ at the reverse proxy or WAF (side effect: legitimate API clients that call that route over GET are broken, so allow-list trusted sources only); purge WordPress transients and the object cache frequently after administrator activity so the 24-hour exposure window is effectively shortened (side effect: cache churn and reduced performance, with an unpredictable race for in-flight requests). Rotate the WordPress authentication salts in wp-config.php (AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY and their salts) to invalidate any Administrator cookie already harvested - do this only after the caching flaw is fixed, since a still-cached response can mint fresh cookies, and note the side effect that every user on the site is logged out and any clients using nonces or signed cookies must re-authenticate. Finally, enforce TLS at the web server or proxy layer rather than relying on the Auth.php HTTPS gate, which is bypassable with insecure=cool and therefore offers no protection. The Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/f2fdf8bf-7f53-4579-9a1f-be7b3ef1ca50?source=cve should be monitored for the confirmed patched version.

Affected VersionsENISA

JSON API Auth 0 ≤3.1.2

Affected Packages

euvd json_api_auth no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause class is CWE-287 (Improper Authentication), realized here as a response-caching design flaw across two chained WordPress plugins. PI-Media/json-api caches controller dispatch results in WordPress transients (database or object-cache backed, default 24-hour TTL) using a key derived solely from the request URI and query string; the HTTP method and POST body are not part of the key, so a GET can be served a response that was originally produced for an administrator's POST. The dependent add-on JSON API Auth exposes a generate_auth_cookie() controller action in controllers/Auth.php (see the Trac references to lines 28, 66, 77 and 104, plus json-api-auth.php line 65) that calls wp_generate_auth_cookie() and embeds the resulting logged_in cookie - the same HMAC-signed, salt-derived credential WordPress accepts for stateful session authentication - inside the JSON response body. Because WordPress auth cookies are self-validating and stateless, anyone who reads that cached body gains a fully valid Administrator session usable against the same plugin's get_currentuserinfo endpoint and any other cookie-authenticated controller action, without ever knowing a password or cracking a hash. The HTTPS enforcement check in Auth.php is not a meaningful barrier: supplying the parameter insecure=cool satisfies the condition and allows the request over plain HTTP. EUVD mirrors the same affected range (JSON API Auth 0 through 3.1.2), and the CPE cpe:2.3:a:parorrey:json_api_auth:*:*:*:*:*:*:*:* covers the add-on, though the cache that leaks the credential belongs to the parent json-api plugin.

Know when Json Api Auth gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Wordfence) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

Unauthenticated network GET (PR:N/AV:N) yielding full admin takeover (C/I/A:H), but AC:H because success depends on an admin having POSTed within the 24h cache window - a condition outside attacker control.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

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 generate_auth_cookie() endpoint - which embeds a live WordPress logged_in cookie produced by wp_generate_auth_cookie() 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 logged_in session cookie from the cached response and use it to fully authenticate as the site Administrator, including via the same plugin's get_currentuserinfo 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/generate_auth_cookie/ 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.

Executive ViewAI

Why It Matters

Critical authentication bypass in the WordPress JSON API Auth plugin (through 3.1.2) and its PI-Media/json-api parent can allow attackers to harvest live administrator cookies from cached API responses and take over affected WordPress sites. Organizations running both plugins are exposed to full site compromise, including data theft, content manipulation, and persistent backdoor installation; because no vendor-released patch is identified at time of analysis, leadership should treat this as an urgent operational risk. The exposure is conditional on both plugins being installed and active, but where present the business impact can be severe.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified; interim mitigations include disabling or removing the JSON API Auth (<=3.1.2) and PI-Media/json-api plugins, blocking /api/auth/generate_auth_cookie/ and insecure=cool at the WAF or proxy, ensuring authenticated API responses are never cached, enforcing HTTPS without insecure override, rotating WordPress salts and admin credentials, and monitoring for stolen admin cookies or unauthorized admin creation.

Threat Intelligence Overview

EPSS Score
0.6%
Top 51% exploitable
Prevalence
Low
niche WordPress API add-on requiring a second parent plugin to function
Social Media
5
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.6%
Patch available No
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

50
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +49
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy