Quick answers
- Is CVE-2026-75828 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-75828 being exploited in the wild.
- How severe is CVE-2026-75828?
- High severity, with a CVSS score of 8.7, published 18 August 2026.
- Which products and versions are affected?
- getgrav/grav (Packagist) ECOSYSTEM:introduced=0,fixed=2.0.15.
- Is there a fix for CVE-2026-75828?
- Yes. getgrav/grav (Packagist): upgrade to 2.0.15 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2026-75828 attacked?
- It is attacked over the network.
- Am I affected by CVE-2026-75828?
- Check whether you run getgrav/grav (Packagist) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- getgrav/grav (Packagist): upgrade to 2.0.15 or later
composer require getgrav/grav:^2.0.15
Technical details
The vulnerability is a logic error in Grav's `detectXss()` function (Security.php:290) in the `on_events` regex pattern used to detect event-handler attributes. The regex treats any quote character as a string delimiter, but HTML only enters a quoted-value state when a quote appears immediately after `=`. An unpaired quote inside an unquoted attribute value causes the regex to enter an "unterminated string" state from which it cannot advance, allowing a following event handler (e.g., `onerror=`) to be overlooked. Payloads like `<img src=x" onerror=alert(1)>` are stored verbatim in the database because `checkSafety()` at save time (the only XSS guard for non-super editors) relies entirely on `detectXss()`. The injected content is emitted via Twig's `raw` filter and rendered in all visitors' browsers without further validation.
Affected products
- Getgrav Grav 2.0.13 and likely earlier versions
Identifiers
- CVE-2026-75828
- GHSA-vfmf-q6x9-cw96
Timeline
- 2026-09-17: disclosed
- other: CVE-2026-75828 assigned