Summary
CVE-2026-65008 is a critical (CVSS 3.1: 9.8 / CVSS 4.0: 9.3) remote code execution vulnerability in Grav CMS affecting all versions prior to 2.0.7. The flaw resides in Blueprint::dynamicData(), which passes a Class::method callable string and its arguments directly to PHP’s call_user_func_array() without any allowlist — enabling a two-stage attack where a low-privileged authenticated user plants a malicious payload that subsequently fires for every unauthenticated visitor who loads the affected page. A patch is available in Grav 2.0.7, released on July 21, 2026.
Technical details
- Root cause:
Blueprint::dynamicData()insystem/src/Grav/Common/Data/Blueprint.phpinvokescall_user_func_array()on an attacker-suppliedClass::methodcallable string and its arguments with no allowlist or sanitization (CWE-94: Improper Control of Generation of Code). - Stage 1 — Payload planting (authenticated): An account holding the
admin.pagesorapi.pages.writepermission embeds a malicious callable directive inside a page’s YAML frontmatter via the Grav form plugin. - Stage 2 — Trigger (unauthenticated): Once the directive is stored, it executes as the web-server user automatically whenever any visitor — including completely unauthenticated internet users — loads the affected page over HTTP/HTTPS.
- Attack vector: Fully network-accessible; no special network position or client interaction is required to trigger execution after the payload is planted.
- Impact: Full remote code execution as the web-server process user, resulting in complete compromise of confidentiality, integrity, and availability of the affected host.
- No public proof-of-concept was identified at time of publication (CVE published 2026-07-21); however, the underlying mechanism (unrestricted
call_user_func_arrayvia frontmatter) is well-documented within the PHP ecosystem and consistent with prior Grav exploit patterns.
Affected software
- Grav CMS — all versions prior to 2.0.7
Severity
- CVSS v3.1 base score: 9.8 (Critical)
- CVSS v3.1 vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS v4.0 base score: 9.3 (Critical)
- CVSS v4.0 vector:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate: Upgrade Grav CMS to version 2.0.7 or later. The 2.0.7 release includes a hardened
Blueprint::dynamicData()implementation that refuses dangerous callable directives in dynamic field data. - If immediate patching is not possible:
- Restrict or disable write access to page frontmatter for all accounts holding
admin.pagesorapi.pages.writepermissions until an upgrade can be applied. - Audit existing pages for unexpected callable directives in YAML frontmatter.
- Apply network-level controls (WAF rules, IP allowlisting) on Grav admin endpoints to limit exposure of the page-editing interface.
- Restrict or disable write access to page frontmatter for all accounts holding
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

