CVE-2026-75834
Received Received - Intake

Stored XSS in Grav CMS Prior to 2.0.14

Vulnerability report for CVE-2026-75834, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-18

Last updated on: 2026-08-18

Assigner: VulnCheck

Description

Grav before 2.0.14 contains a stored cross-site scripting vulnerability in the Security::detectXss() function (system/src/Grav/Common/Security.php). All XSS detection patterns use the PCRE /u (UTF-8) modifier, so a single invalid UTF-8 byte anywhere in page content causes preg_match() to return false for every pattern, silently bypassing the save-time XSS safety gate (Validation::checkSafety()). An authenticated attacker with page-edit permissions (without the security.xss_whitelist privilege) can store malicious JavaScript that executes in the browser of a visitor who views the affected page.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-18
Last Modified
2026-08-18
Generated
2026-08-18
AI Q&A
2026-08-18
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
getgrav grav to 2.0.14 (exc)
grav grav to 2.0.14 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-79 The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This is a stored cross-site scripting (XSS) vulnerability in Grav versions before 2.0.14. It occurs because the Security::detectXss() function uses PCRE regex patterns with the UTF-8 modifier (/u). A single invalid UTF-8 byte in user input causes preg_match() to return false for all patterns, bypassing XSS detection during content saving. An attacker with page-edit permissions can inject malicious JavaScript that executes when other users view the page.

Detection Guidance

Check Grav version with 'bin/grav version' and compare against 2.0.14. Inspect system/src/Grav/Common/Security.php for the Security::detectXss() function implementation. Review logs for unusual page edits or XSS-related errors.

Impact Analysis

An authenticated attacker with page-edit permissions can store malicious JavaScript on a Grav page. When other users, including administrators, view the affected page, the injected script executes in their browsers. This could lead to session hijacking, data theft, or unauthorized actions performed on behalf of the user.

Compliance Impact

This vulnerability could lead to unauthorized access to user data, violating GDPR's data protection principles and HIPAA's security requirements for protected health information. Organizations using vulnerable Grav versions may face compliance violations, legal liabilities, and reputational damage if exploited.

Mitigation Strategies

Upgrade Grav to version 2.0.14 or later immediately. If upgrading is not possible, review and restrict page-edit permissions to trusted users only. Monitor for suspicious page edits and implement additional input validation for UTF-8 encoding.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-75834. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart