{"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","slug":"CVE-2026-72832","body":"## Overview\n\nGrav 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.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-72832)\n\nAffected packages:\n\n- `getgrav/grav >= 1.5.2, <= 2.0.12`\n\nPatched in:\n\n- `getgrav/grav 2.0.13`\n\nSource: https://github.com/advisories/GHSA-269c-h76q-8cxw","depth":"twilight","depthScore":42,"depthScoreParts":{"impact":29.7,"likelihood":0.1,"exploitation":12,"ransomware":0},"changes":[{"seq":213848,"id":"CVE-2026-72832","ts":1790792440667,"field":"exploit_available","old":"false","new":"true"}]}