---
id: CVE-2026-72832
title: >-
  Grav versions from 1.5.2 through 2.0.12 contain a stored cross-site scripting
  vulnerability in the Security::detectXss() function
  (system/src/Grav/Common/Security.php)
summary: >-
  Grav versions from 1.5.2 through 2.0.12 contain a stored cross-site scripting
  vulnerability in the Security::detectXss() function
  (system/src/Grav/Common/Security.php). The event-handler scan is anchored at
  `<` and uses `[^>]*?`, which c…
severity: medium
cvss: 5.4
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N'
cwe:
  - CWE-79
published: '2026-08-14'
updated: '2026-09-08'
sourceUpdated: '2026-09-08T20:32:39.347'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-72832'
references:
  - url: >-
      https://github.com/getgrav/grav/commit/ad9709f865b09b68798fb1ac375b484a8cc1d892
    label: disclosure@vulncheck.com
  - url: 'https://github.com/getgrav/grav/security/advisories/GHSA-269c-h76q-8cxw'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/grav-before-stored-xss-via-quoted-attribute-bypass
    label: disclosure@vulncheck.com
  - url: 'https://github.com/getgrav/grav/security/advisories/GHSA-269c-h76q-8cxw'
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-72832'
  - url: 'https://github.com/advisories/GHSA-269c-h76q-8cxw'
tags:
  - nvd
  - ghsa
  - composer
epss: 0.00314
epssPercentile: 0.21727
ingestedAt: '2026-09-08T21:11:12.278Z'
aliases:
  - GHSA-269c-h76q-8cxw
ecosystem: composer
vendor: getgrav
product: getgrav/grav
affected:
  - 'getgrav/grav >= 1.5.2, <= 2.0.12'
patched:
  - getgrav/grav 2.0.13
---

## Overview

Grav versions from 1.5.2 through 2.0.12 contain a stored cross-site scripting vulnerability in the Security::detectXss() function (system/src/Grav/Common/Security.php). The event-handler scan is anchored at `<` and uses `[^>]*?`, which cannot cross the first literal `>`; when a `>` appears inside a quoted attribute value the browser keeps the tag open and parses a subsequent event handler (e.g. onerror), so the detector and browser disagree. A page editor without admin.super privileges can save page content such as `<img src=x title=">" onerror=alert(document.domain)>`, which is accepted, stored, and executed in the site origin when any visitor (including unauthenticated users) views the page. Fixed in 2.0.13.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-72832)

Affected packages:

- `getgrav/grav >= 1.5.2, <= 2.0.12`

Patched in:

- `getgrav/grav 2.0.13`

Source: https://github.com/advisories/GHSA-269c-h76q-8cxw
