# CVE-2026-65008: Grav remote code execution in Blueprint dynamicData

Source: https://junglewise.ai/threats/cve-2026-65008-grav-remote-code-execution-in-blueprint-dynamicdata  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-07-21. Updated: 2026-07-21  
License: CC BY 4.0 with a link back

CVE-2026-65008 · Severity: critical · CVSS 9.8 · Published 2026-07-21

Grav, a popular open-source content management system, contains a vulnerability that allows certain authorized users to take full control of the web server. By saving a specially crafted page, an attacker with page-editing permissions can force the server to execute malicious commands. These commands are triggered automatically whenever any visitor, including members of the public, views the affected page, potentially leading to a total compromise of the website and its data.

Technologies: [Grav](https://junglewise.ai/threats/technologies/grav). Vendors: [Grav](https://junglewise.ai/threats/vendors/grav).

## Quick answers

**Is CVE-2026-65008 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-65008 being exploited in the wild.

**How severe is CVE-2026-65008?** Critical severity, with a CVSS score of 9.8, published 21 July 2026.

**Which products and versions are affected?** Grav >= 2.0.4, < 2.0.7.

**Is there a fix for CVE-2026-65008?** A patch was published on 2026-07-21: Fix released in version 2.0.7 Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-65008 attacked?** It is attacked over the network, in a web application.

**Am I affected by CVE-2026-65008?** Check whether you run Grav at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Technical details

A remote code execution (RCE) vulnerability exists in Grav's Blueprint::dynamicData() method within system/src/Grav/Common/Data/Blueprint.php. The function passes a Class::method callable string and its arguments directly to call_user_func_array() without an allowlist. Because the Grav Form plugin routes page frontmatter through this path, an authenticated user with 'admin.pages' or 'api.pages.write' permissions can inject a malicious callable directive (such as system()) into a page's frontmatter. Once planted, the payload executes with the privileges of the web-server user whenever the page is requested, even by unauthenticated visitors. The issue is resolved in version 2.0.7.

## Affected products

- getgrav Grav >= 2.0.4, < 2.0.7

## Timeline

- 2026-07-07: advisory: GitHub Security Advisory published
- 2026-07-21: disclosed: CVE published to NVD
- 2026-07-21: patched: Fix released in version 2.0.7

## References

- [https://github.com/getgrav/grav/security/advisories/GHSA-fj2p-qj2f-74v5](https://github.com/getgrav/grav/security/advisories/GHSA-fj2p-qj2f-74v5)
- [https://www.vulncheck.com/advisories/grav-before-remote-code-execution-via-blueprint-dynamicdata](https://www.vulncheck.com/advisories/grav-before-remote-code-execution-via-blueprint-dynamicdata)

## Related threats

- [Grav allowlist bypass in Flex form processing](https://junglewise.ai/threats/cve-2026-116019-grav-2-0-15-before-2-2-13-contains-an-allowlist-bypass)
- [Grav improper access control in FlexDirectory::dynamicFlexField()](https://junglewise.ai/threats/cve-2026-114660-grav-from-2-0-0-before-2-2-5-contains-an-improper-access-control)
- [Grav information disclosure via Twig HTTP Basic credentials](https://junglewise.ai/threats/cve-2026-114657-grav-from-2-0-0-before-2-2-5-contains-an-information-disclosure)
- [Grav image pixel limit bypass allows resource exhaustion](https://junglewise.ai/threats/cve-2026-112782-grav-1-7-53-before-1-7-53-5-and-2-0-0-rc-8-before-2-2-2-contains)
- [Grav information disclosure via nested Git repositories](https://junglewise.ai/threats/cve-2026-109326-grav-before-2-1-7-contains-an-information-disclosure)
