Description
The Grav API plugin (getgrav/grav-plugin-api) before 1.0.0-rc.16 shipped Access-Control-Allow-Origin: * as its default CORS configuration on all responses, including authenticated endpoints and preflight (OPTIONS) responses. Because the plugin accepts credentials via the Authorization and X-API-Token headers (set programmatically by JavaScript rather than via cookies), an attacker who obtains a valid access token (e.g., via log leakage, Referer headers, browser history, or network capture) can issue fully authenticated cross-origin requests from any malicious website to read sensitive data and perform write operations as the token's user. Fixed in 1.0.0-rc.16.
Published: 2026-07-17
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Grav API plugin shipped with a default CORS configuration that set Access‑Control‑Allow‑Origin to '*', allowing any origin to reach all plugin responses, including authenticated endpoints. Because the plugin accepts credentials through the Authorization and X‑API‑Token headers, an attacker who can obtain a valid token—through log leakage, referer headers, browser history, or network capture—can use a malicious website to issue fully authenticated cross‑origin requests. The result is that an authenticated user’s data can be read or altered without the user’s knowledge, a classic CORS misconfiguration leading to potential data disclosure and unauthorized data modification. This weakness is documented as CWE‑942. The CVSS score of 7.1 reflects the severity of this functional impact.

Affected Systems

Any Grav installation that uses the getgrav/grav-plugin-api before version 1.0.0-rc.16 is affected. That includes distributions in which the plugin is present in release versions earlier than 1.0.0-rc.16 and any custom sites that have not upgraded the plugin to the fixed release.

Risk and Exploitability

The EPSS score is less than 1%, indicating the current exploit probability is low, and the vulnerability is not yet listed in CISA’s KEV catalog. However, the exploit path is straightforward once a token is compromised: a malicious page can send authenticated requests with the stolen token, exposing sensitive data or performing desired state changes. The knowledge that a correctly authenticated request can be spoofed across origins, combined with the low likelihood of token exposure, places this issue in the moderate‑high risk category according to the CVSS rating. The potential impact on confidentiality and integrity is significant if a token is leaked, but the overall attack surface is limited to sites exposed to token leakage via client‑side logging or network interception.

Generated by OpenCVE AI on July 31, 2026 at 00:44 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, which removes the default Access‑Control‑Allow‑Origin:* setting for authenticated endpoints.
  • If an upgrade cannot be applied immediately, configure the plugin to allow only trusted origins for authenticated requests or disable CORS handling for those endpoints; ensure no wildcard origins are permitted.
  • Review the site’s token handling and logging practices to prevent accidental token exposure, and consider using secure server‑side sessions or encrypted cookies instead of client‑side token storage.

Generated by OpenCVE AI on July 31, 2026 at 00:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 17 Jul 2026 12:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Fri, 17 Jul 2026 00:30:00 +0000

Type Values Removed Values Added
Description The Grav API plugin (getgrav/grav-plugin-api) before 1.0.0-rc.16 shipped Access-Control-Allow-Origin: * as its default CORS configuration on all responses, including authenticated endpoints and preflight (OPTIONS) responses. Because the plugin accepts credentials via the Authorization and X-API-Token headers (set programmatically by JavaScript rather than via cookies), an attacker who obtains a valid access token (e.g., via log leakage, Referer headers, browser history, or network capture) can issue fully authenticated cross-origin requests from any malicious website to read sensitive data and perform write operations as the token's user. Fixed in 1.0.0-rc.16.
Title Grav < 1.0.0-rc.16 CORS Misconfiguration via API Plugin
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-942
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

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

cvssV4_0

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


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-17T12:03:54.826Z

Reserved: 2026-07-13T22:40:54.412Z

Link: CVE-2026-62387

cve-icon Vulnrichment

Updated: 2026-07-17T12:03:39.650Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T00:45:05Z

Weaknesses
  • CWE-942

    Permissive Cross-domain Security Policy with Untrusted Domains