Grav: Allowlist bypass in Flex form override directives
Summary
Grav versions 2.0.15 up to 2.2.12 contain an allowlist bypass in Flex form overrides. An attacker with page-edit permission can place crafted fields in page frontmatter to call public static methods such as Folder::delete or Utils::download. This can delete directories, overwrite files or read files outside the page tree. Exploitation requires a valid account with page-edit rights.
Affected
- Grav 2.0.15 up to but not including 2.2.13 (vendor range: 2.0.15 through 2.2.12)
Fixed in
- Grav 2.2.13
Workaround
Unknown. The vendor advisory lists no workaround; upgrading to 2.2.13 is the documented remedy.
- Interim measure (not from the vendor): limit page-edit rights to trusted staff and review page frontmatter for unexpected data-*@ or unusual Flex form keys.
Exploitation
- No known exploitation at the time of research.
- CISA SSVC assessment: exploitation none, not automatable, total technical impact.
- No public proof of concept found.
Our recommendation
- Update Grav to 2.2.13 or later using the normal update cycle, without deferring it.
- Prioritise sites with multiple editors, contractors or partners with editor rights.
- Review editor accounts and page frontmatter for unexpected data-*@ keys until the update is applied.
- Monitor for unexpected file deletions or changes in the page and file directories.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-47gg-mh38-9rr7 github.com
- Grav 2.2.13 release github.com
- Fix commit 4d9e3935 github.com
- VulnCheck advisory www.vulncheck.com
- Blueprint.php at 2.2.12 github.com
- Tenable CVE-2026-116019 www.tenable.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 00:21.
Original description (NVD)
Grav 2.0.15 before 2.2.13 contains an allowlist bypass vulnerability that allows page editors to invoke arbitrary public static methods by relocating data-*@ directives with unset-name@ or integer keys. Attackers with page-edit permission can embed crafted fields in Flex form overrides in page frontmatter to call methods like Folder::delete or Utils::download, deleting directories, overwriting files, or reading files outside the page tree.
NVD references (5)
- https://github.com/getgrav/grav/blob/2.2.12/system/src/Grav/Common/Data/Blueprint.php
- https://github.com/getgrav/grav/commit/4d9e3935f6b79cc1a157914554ccca6066a16f87
- https://github.com/getgrav/grav/releases/tag/2.2.13
- https://github.com/getgrav/grav/security/advisories/GHSA-47gg-mh38-9rr7
- https://www.vulncheck.com/advisories/grav-2.0.15-before-2.2.13-allowlist-bypass-via-flex-form-override-direct…
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
