CVE-2026-75828

Grav before 2.0.15 Stored XSS via detectXss() Quote Bypass

Published Aug 18, 2026 CVSS 4.0 · 9.3 Critical EPSS < 1% KEV · Not listed
Description
Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the detectXss() function where unpaired quotes in unquoted attribute values bypass event-handler detection. Authenticated editors can inject event handlers like onerror= that pass validation and execute in visitor browsers when page content is rendered.

Analysis

AI-generated

Technical impact

The vulnerability resides in the detectXss() function of Grav prior to version 2.0.15, allowing a stored cross‑site scripting attack. Unpaired quotes in unquoted attribute values bypass the function’s event‑handler detection, enabling authenticated editors to inject attributes such as onerror=. When the content is later rendered for visitors, the injected scripts execute within their browsers. This can lead to session hijacking, credential theft, or malicious redirects, compromising the confidentiality and integrity of user data.

Affected Systems

The affected product is Grav, provided by getgrav. All releases before version 2.0.15 are vulnerable; upgrading to any 2.0.15 or later release removes the flaw.

Risk and Exploitability

With a CVSS score of 9.3, the vulnerability is high severity. The EPSS score is not available and the issue is not listed in the CISA KEV catalog, indicating no known widespread exploitation at the time of disclosure. Exploitation relies on having editorial access to inject content; an attacker with such privileges can embed malicious event handlers that will run in the browsers of site visitors. The risk is primarily client‑side, but the stored nature of the payload means it can affect all users who view the compromised content.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the Grav patch that includes version 2.0.15 or later
  • Limit editorial permissions to trusted users and remove temporary access when no longer needed
  • Review existing page content for suspicious event‑handler attributes and remove any that are not legitimate

Generated by OpenCVE AI on August 18, 2026 at 12:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-vfmf-q6x9-cw96 Grav: detectXss() misses an event-handler attribute after an unpaired quote in an unquoted attribute value, giving stored XSS
History
Type Values Removed Values Added
Metrics ssvc

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

Type Values Removed Values Added
Description Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the detectXss() function where unpaired quotes in unquoted attribute values bypass event-handler detection. Authenticated editors can inject event handlers like onerror= that pass validation and execute in visitor browsers when page content is rendered.
Title Grav before 2.0.15 Stored XSS via detectXss() Quote Bypass
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-79
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

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

cvssV4_0

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

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Sources

Status
PUBLISHED
Assigner
VulnCheck
Published
Updated
Oct 8, 2026, 3:24 PM
Reserved
Aug 18, 2026, 10:57 AM
Status
Deferred
Published
Aug 18, 2026, 12:19 PM
Modified
Oct 22, 2026, 10:10 PM