Description
Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the audio and video media rendering through the sourceParsedownElement method. The media URL fragment is concatenated unescaped into rawHtml source elements, allowing attackers to inject arbitrary HTML and JavaScript that executes in viewers' sessions.
Published: 2026-08-18
Score: 5.1 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is a stored cross‑site scripting flaw introduced by the media rendering code for audio and video elements in Grav. Because the source URL is concatenated directly into the raw HTML element without escaping, an attacker who can inject a malicious URL will cause arbitrary HTML or JavaScript to run in the browsers of anyone who views the page. The flaw enables the execution of code in the context of the site, allowing attackers to steal session cookies, deface content, or perform other actions that require the victim’s user rights. The weakness is identified as CWE‑79, indicating an input handling bug that leads to scripting injection.

Affected Systems

Grav content‑management systems running a version earlier than 2.0.15 are affected. Any deployment using Grav prior to this release, regardless of operating system or web server, may host the vulnerable media code and thus be susceptible to exploitation.

Risk and Exploitability

Not recognized in KEV; no exploitability indicator is available in EPSS. The vulnerability's moderate CVSS score reflects that exploitation requires only the ability to supply a malicious media URL; the consequence is client‑side code execution. Monitoring for attempts to host or view suspicious media URLs, and implementing a content security policy that limits script execution, can mitigate the risk while a permanent fix is applied.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply an upgrade to Grav version 2.0.15 or later to remove the vulnerable media rendering logic.
  • If an upgrade is not immediately possible, sanitize or remove the source attribute in audio and video tags from stored content so that user‑provided URLs are not rendered directly.
  • Implement a strict content security policy that disallows inline scripts and limits script sources to trusted origins, reducing the impact of any residual XSS injection.

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 18 Aug 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Tue, 18 Aug 2026 11:30:00 +0000

Type Values Removed Values Added
Description Grav before 2.0.15 contains a stored cross-site scripting vulnerability in the audio and video media rendering through the sourceParsedownElement method. The media URL fragment is concatenated unescaped into rawHtml source elements, allowing attackers to inject arbitrary HTML and JavaScript that executes in viewers' sessions.
Title Grav before 2.0.15 Stored XSS via audio/video source URL
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': 7.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N'}

cvssV4_0

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


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-18T13:55:32.341Z

Reserved: 2026-08-18T10:57:39.580Z

Link: CVE-2026-75831

cve-icon Vulnrichment

Updated: 2026-08-18T13:55:04.712Z

cve-icon NVD

Status : Received

Published: 2026-08-18T12:19:33.100

Modified: 2026-08-18T14:18:10.730

Link: CVE-2026-75831

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T12:45:06Z

Weaknesses
  • CWE-79

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