Description
Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.0-rc.16, the Grav API plugin JwtAuthenticator::extractBearerToken() accepts a JWT from the token URL query parameter on every /api/v1 route, including state-changing endpoints. Request URLs consequently expose valid access tokens through Apache, proxy, and CDN logs, browser history, and Referer headers, allowing a party with access to those records to reuse the token with the owner's API privileges. This issue is fixed in version 1.0.0-rc.16.
Published: 2026-08-19
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Grav API plugin accepts a JWT provided in the ?token= query parameter on every /api/v1 route, including those that modify data, which is a CWE‑598 input validation weakness that writes valid access tokens to server logs, CDN logs, proxy logs, browser history, and Referer headers. As a result, valid access tokens are exposed to anyone who can read those records. An attacker who obtains a logged token can impersonate the owner and perform any API action granted to the token holder, effectively bypassing authentication requirements and potentially altering site content.

Affected Systems

Versions of the Grav API plugin older than 1.0.0‑rc.16 are affected. The issue applies to installations of Grav CMS that use the getgrav:grav‑plugin‑api plugin before that release.

Risk and Exploitability

The CVSS score of 7.5 indicates a high severity risk. The EPSS score of < 1% indicates a very low exploitation probability, and the vulnerability is not listed in the CISA KEV catalog, implying limited public exploitation so far. Exploitation requires that an attacker has access to logs, CDN records, or Referer headers, or can induce a user’s browser to send a request containing a leaked token. If such exposure occurs, the attacker can reuse the token to gain the bearer’s privileges, which can include full API access and state changes.

Generated by OpenCVE AI on August 20, 2026 at 15:27 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 newer.
  • If an upgrade is not immediately possible, configure the plugin or web server to ignore or reject JWTs passed via the ?token= query parameter on /api/v1 routes.
  • If a token has been exposed, rotate the affected JWTs and audit logs for evidence of misuse.

Generated by OpenCVE AI on August 20, 2026 at 15:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 19 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Wed, 19 Aug 2026 19:00:00 +0000

Type Values Removed Values Added
First Time appeared Getgrav
Getgrav grav-plugin-api
Vendors & Products Getgrav
Getgrav grav-plugin-api

Wed, 19 Aug 2026 16:00:00 +0000

Type Values Removed Values Added
Description Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.0-rc.16, the Grav API plugin JwtAuthenticator::extractBearerToken() accepts a JWT from the token URL query parameter on every /api/v1 route, including state-changing endpoints. Request URLs consequently expose valid access tokens through Apache, proxy, and CDN logs, browser history, and Referer headers, allowing a party with access to those records to reuse the token with the owner's API privileges. This issue is fixed in version 1.0.0-rc.16.
Title Grav API Plugin: JWT Access Token Accepted via `?token=` URL Query Parameter
Weaknesses CWE-598
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'}


Subscriptions

Getgrav Grav-plugin-api
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-19T18:18:38.809Z

Reserved: 2026-07-16T19:20:28.987Z

Link: CVE-2026-63408

cve-icon Vulnrichment

Updated: 2026-08-19T18:17:26.778Z

cve-icon NVD

Status : Deferred

Published: 2026-08-19T16:18:38.013

Modified: 2026-09-09T21:13:25.910

Link: CVE-2026-63408

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-20T15:30:03Z

Weaknesses
  • CWE-598

    Use of HTTP Request With Sensitive Query String