CVE-2026-65608
HIGH
CVSS 8.7
grav
Verified Advisory
Remote code execution in Grav CMS via unchecked callable in FlexDirectory (CVE-2026-65608)
A missing validation check in `FlexDirectory::dynamicDataField()` allows the method to resolve blueprint `data-*@:` directives by calling `call_user_func_array()` on attacker-influenced input, verifying only that the target is callable without restricting dangerous functions such as `exec`, `system`, `passthru`, or `shell_exec`. Because `FlexDirectory` registers this handler for every Flex directory, the fix applied in 2.0.7 to `Blueprint::dynamicData()` (GHSA-fj2p-qj2f-74v5) is bypassed entirely. Any authenticated user holding create or update permission on any Flex-based directory (Flex Users, Flex Pages, Flex Objects, or custom Flex types) can execute arbitrary shell commands on the server.
Affected versions:
- >= 1.7.0
We recommend updating to: 2.0.9.
CVSS 8.7 · our assessment: this_week
Reference: https://github.com/getgrav/grav/security/advisories/GHSA-c4wf-2xxc-68qm
Details: https://vuln.today/cve/CVE-2026-65608
Verified by vuln.today against published advisories.
Affected versions
- – >= 1.7.0
Fixed in: 2.0.9
More advisories for grav
- CVE-2026-65895 – Broken access control in Grav API Plugin configuration scopes (CVE-2026-65895)
- CVE-2026-65896 – Path traversal in Grav API Plugin POST /pages/{route}/move endpoint (CVE-2026-65896)
- CVE-2026-65897 – Privilege escalation via unvalidated groups field in Grav API Plugin (CVE-2026-65897)
- CVE-2026-65603 – Privilege Escalation via profile self-update in Grav Login plugin (CVE-2026-65603)
- CVE-2026-65008 – Remote code execution via unrestricted callable in Grav CMS (CVE-2026-65008)
- CVE-2026-65007 – Missing authorization on API key generation in Grav API plugin (CVE-2026-65007)
- CVE-2026-62230 – Case-sensitive extension filtering bypass in Grav CMS (CVE-2026-62230)
- CVE-2026-62231 – Authorization bypass in Grav API plugin (CVE-2026-62231)