{"uuid": "7be9d4f7-5884-4477-9964-82223448f99b", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2026-75831", "type": "seen", "source": "https://gist.github.com/alon710/0c813f94f8f4231594aa209e75f9f7b9", "content": "# CVE-2026-75831: CVE-2026-75831: Stored Cross-Site Scripting in Grav CMS Audio/Video Media Rendering\n\n&gt; **CVSS Score:** 7.6\n&gt; **Published:** 2026-09-17\n&gt; **Full Report:** https://cvereports.com/reports/CVE-2026-75831\n\n## Summary\nImproper neutralization of input during web page generation in Grav CMS allows authenticated users with page modification privileges to execute stored Cross-Site Scripting (XSS) attacks. The flaw exists in AudioMediaTrait and VideoMediaTrait where media source URLs are concatenated directly into HTML templates without proper escaping.\n\n## TL;DR\nA stored Cross-Site Scripting vulnerability in Grav CMS versions prior to 2.0.15 allows authenticated editors to insert arbitrary JavaScript via malicious audio/video file paths, which executes in the context of any user (including administrators) viewing the page.\n\n## Exploit Status: POC\n\n## Technical Details\n\n- **CWE ID**: CWE-79\n- **Attack Vector**: Network (AV:N)\n- **CVSS v3.1 Score**: 7.6 (High)\n- **EPSS Score**: 0.00313 (0.31%)\n- **Impact**: Stored Cross-Site Scripting (XSS)\n- **Exploit Status**: Proof-of-Concept\n- **KEV Status**: Not Listed\n\n## Affected Systems\n\n- Grav CMS\n- **Grav**: &lt; 2.0.15 (Fixed in: `2.0.15`)\n\n## Mitigation\n\n- Upgrade Grav CMS core to version 2.0.15 or later.\n- Deploy a robust Content Security Policy (CSP) to block unauthenticated inline scripts.\n- Utilize WAF rules to detect and drop payloads containing attribute breakout characters in markdown submissions.\n\n**Remediation Steps:**\n1. Navigate to the Grav Admin Panel.\n2. Select the update notification or run 'bin/gpm self-upgrade' via the command line interface.\n3. Verify that 'AudioMediaTrait.php' and 'VideoMediaTrait.php' contain the htmlspecialchars wrapping for the $location variable.\n4. Clear the Grav cache by executing 'bin/grav clear-cache'.\n\n## References\n\n- [GHSA-6qw9-4vv5-jr97: Stored XSS in Grav CMS Audio/Video Media Rendering](https://github.com/getgrav/grav/security/advisories/GHSA-6qw9-4vv5-jr97)\n- [Grav Fix Commit](https://github.com/getgrav/grav/commit/d5f89d95d94cc155bc3be998ee85527a7be073dd)\n- [VulnCheck Advisory for CVE-2026-75831](https://www.vulncheck.com/advisories/grav-before-stored-xss-via-audio-video-source-url)\n- [NVD - CVE-2026-75831](https://nvd.nist.gov/vuln/detail/CVE-2026-75831)\n\n\n---\n*Generated by [CVEReports](https://cvereports.com/reports/CVE-2026-75831) - Automated Vulnerability Intelligence*", "creation_timestamp": "2026-09-17T18:31:18.941366Z"}