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: n/a
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. As a result, valid access tokens are written to server, CDN, and proxy logs, settle in browser history, and appear in Referer headers, exposing them 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 is not available, 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 01:04 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 01:04 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 : Received

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

Modified: 2026-08-19T19:17:22.413

Link: CVE-2026-63408

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-20T01:15:04Z

Weaknesses
  • CWE-598

    Use of HTTP Request With Sensitive Query String