---
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
vendor: getgrav
product: grav
affected:
  - grav >= 1.5.2 <= 2.0.12
patched:
  - getgrav/grav 2.0.13
published: '2026-08-14'
updated: '2026-10-08'
sourceUpdated: '2026-10-08T16:17:36.197'
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
  - cve.org
  - exploit-available
  - ghsa
  - composer
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-08-14T14:36:40.105736Z'
epss: 0.00314
epssPercentile: 0.24187
aliases:
  - GHSA-269c-h76q-8cxw
ecosystem: composer
ingestedAt: '2026-09-08T21:11:12.278Z'
---

## 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
