External risk intelligence

Grav Stored Cross-Site Scripting via Unquoted Attribute Bypass.

CVE advisorySeverity: CRITICAL (CVSS 9.3)

CVE-2026-75828

Grav is a content management system (CMS) commonly deployed as a public-facing web application. Since this vulnerability allows authenticated editors to inject malicious scripts that execute in the browsers of site visitors, the attack surface involves standard, internet-accessible web content rendering.

Cross-site Scripting

Halo Surface Signal: 4 out of 5 — likely to be public-facing.

External exposure likelihood

Horizon Alert

Summary of the vulnerability and why it matters

This advisory concerns a stored cross-site scripting vulnerability in the Grav content management system. The flaw allows authenticated users with editing privileges to inject malicious code that can execute within the browsers of website visitors when content is displayed. This could potentially lead to various malicious actions, impacting user trust and data integrity.

  • Authenticated editors can run code in visitor browsers.
  • It affects how public websites present content securely.
  • Confirm relevance and exposure for Grav installations.

Attack Path

How an attacker could exploit the issue

An attacker could exploit this vulnerability by leveraging their authenticated access as an editor within the Grav CMS. By injecting specially crafted code containing unpaired quotes into unquoted attribute values within page content, the attacker can bypass security checks in the `detectXss()` function. When a visitor views the compromised page content, the malicious script executes in their browser, potentially leading to further compromise.

  • Entry condition: Authenticated editor access.
  • Trigger point: Visitor viewing crafted page content.
  • Resulting risk: Arbitrary script execution in browsers.

Live Threat

Current exploitation, exposure, and threat context

When supported by the advisory, authenticated editors could inject malicious code into page content that, when rendered, executes in visitor browsers. This could affect visitor browsers and potentially expose them to risks associated with the injected code.

  • Visitor browser code execution.
  • Malicious script injection via content editing.
  • Unspecified risks to visitor browsers.

Operational Fix

Recommended remediation, mitigation, and detection steps

The Grav content management system's stored cross-site scripting vulnerability requires immediate attention from teams managing web applications and their content. The first step is to identify all Grav instances, determine their internet reachability and business criticality, and then locate the accountable owner for remediation planning. Coordination with the Grav vendor may be necessary if updates are managed externally or if specific patching guidance is required.

  • Content owners and platform teams.
  • Confirm Grav instance reachability and criticality.
  • Plan risk-based remediation with vendor coordination.

Supplementary metadata

Validate whether this threat affects your internet-facing exposure.

Halo Threat Intelligence helps prioritize remediation with Halo Surface Signal and H/A/L/O context. Start exposure validation with a free external attack surface trial.

Frequently asked questions

What is Grav and how is it used?

Grav is a flat-file content management system (CMS) that stores data in files rather than a database. It is widely used for building fast, flexible websites, ranging from personal blogs to complex corporate portals, where users with varying technical skills collaborate to publish web content.

What is the CVE-2026-75828 vulnerability?

This is a stored Cross-Site Scripting (XSS) vulnerability, classified as CWE-79. It stems from a logic flaw in the detectXss() function. When an editor inputs code with unpaired quotes in unquoted attributes, the system fails to recognize it as malicious. This allows the injected script to be saved and later executed by the browsers of anyone who visits the page.

How does an attacker trigger this XSS bug?

An attacker must have valid credentials with editing privileges to the Grav CMS. They trigger the flaw by embedding crafted event handlers, such as 'onerror=', into page content. It does not trigger if the input uses standard, properly quoted HTML attributes, as those are correctly handled by the validation logic.

Is my Grav instance at risk according to Halo Surface Signal?

Halo Surface Signal identifies this as a high-relevance risk because Grav is typically deployed as a public-facing web application. Since the vulnerability allows script execution in the browsers of site visitors, any internet-accessible instance of Grav is a potential target for this type of content-based attack.

How should I respond to CVE-2026-75828?

Start by identifying all Grav instances running within your environment to determine their internet accessibility and business impact. Once you have a clear inventory, prioritize these assets for updates. Consult the vendor's official guidance to obtain the necessary patch or version upgrade that resolves the detectXss() validation bypass.

References