Description
Grav API plugin before v1.0.0-rc.16 accepts JWT tokens via the ?token= URL query parameter and responds with Access-Control-Allow-Origin: *, allowing unauthenticated attackers to make fully authenticated cross-origin API requests from any malicious website. Attackers who obtain a leaked JWT token from access logs, proxy logs, browser history, or Referrer headers can create persistent backdoor super-admin accounts and exfiltrate sensitive configuration and user data.
Published: 2026-07-08
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Grav API plugin accepts JWT tokens through the ?token= query parameter and replies with Access‑Control‑Allow‑Origin: *, giving an attacker the ability to send authenticated requests from any malicious origin. This vulnerability stems from improper handling of JWTs in the query string, a flaw classified as CWE-598. If a JWT is leaked – from logs, browser history, or Referrer headers – create a persistent super‑admin account and retrieve sensitive configuration and user data.

Affected Systems

GetGrav Grav API plugin version before 1.0.0‑rc.16 is affected. The issue applies to all deployments of GetGrav Grav that use the plugin without the correction.

Risk and Exploitability

The CVSS score of 8.7 indicates high severity, and the EPSS score of <1% indicates a low but non‑zero probability of exploitation. The vulnerability is not yet listed in the CISA KEV catalog. Attackers can exploit the flaw by loading a malicious website that makes cross‑origin API calls to the target. Since the plugin authorizes the token without verifying it is not in the query string, any attacker who obtains a valid token can effectively control the account.

Generated by OpenCVE AI on July 26, 2026 at 17:53 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Grav API plugin to version 1.0.0‑rc.16 or later where the ?token= query parameter handling is removed.
  • Configure the server to set Access‑Control‑Allow‑Origin to the specific trusted domain(s) instead of a wildcard value.
  • Remove or sanitize the ?token= parameter from logs, proxy history, browser history, and Referrer headers and purge any leaked tokens.

Generated by OpenCVE AI on July 26, 2026 at 17:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 08 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 08 Jul 2026 14:15:00 +0000

Type Values Removed Values Added
Description Grav API plugin before v1.0.0-rc.16 accepts JWT tokens via the ?token= URL query parameter and responds with Access-Control-Allow-Origin: *, allowing unauthenticated attackers to make fully authenticated cross-origin API requests from any malicious website. Attackers who obtain a leaked JWT token from access logs, proxy logs, browser history, or Referrer headers can create persistent backdoor super-admin accounts and exfiltrate sensitive configuration and user data.
Title Grav API Plugin - Cross-Origin Admin Account Takeover via CORS Wildcard and JWT Query Parameter
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-598
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}

cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-08T15:44:42.513Z

Reserved: 2026-07-01T21:54:37.946Z

Link: CVE-2026-58656

cve-icon Vulnrichment

Updated: 2026-07-08T15:44:14.911Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-26T18:00:05Z

Weaknesses
  • CWE-598

    Use of HTTP Request With Sensitive Query String