CVE-2026-65008
Received Received - Intake

Remote Code Execution in Grav CMS via Blueprint Callable

Vulnerability report for CVE-2026-65008, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-21

Last updated on: 2026-07-21

Assigner: VulnCheck

Description

Grav 2.0.4 (fixed in 2.0.7) contains a remote code execution vulnerability in Blueprint::dynamicData() (system/src/Grav/Common/Data/Blueprint.php), which passes a Class::method callable string and its arguments directly to call_user_func_array() without any allowlist. Because the form plugin routes page frontmatter through this path, an authenticated account with the admin.pages (or api.pages.write) permission can plant a malicious callable directive in a page. The command then executes as the web-server user whenever anyone β€” including an unauthenticated visitor β€” accesses the page.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-21
Last Modified
2026-07-21
Generated
2026-07-21
AI Q&A
2026-07-21
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 3 associated CPEs
Vendor Product Version / Range
grav grav to 2.0.7 (exc)
getgrav grav to 2.0.7 (exc)
getgrav grav From 2.0.0 (inc) to 2.0.7 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-94 The product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-65008 is a remote code execution (RCE) vulnerability in Grav CMS versions up to 2.0.4. It occurs in the Blueprint::dynamicData() function where user-supplied input is passed directly to call_user_func_array() without validation. An attacker with admin.pages or api.pages.write permissions can inject malicious shell commands into a page's frontmatter. When the page is accessed, even by unauthenticated users, the command executes with the web server's privileges.

Detection Guidance

Check Grav CMS version with: grep -r "version" /path/to/grav/system/src/Grav/Common/Site.php. If version is below 2.0.7, the system is vulnerable. Look for suspicious page frontmatter entries in /user/pages/ that contain callable directives or shell commands.

Impact Analysis

This vulnerability allows attackers to execute arbitrary commands on your server with the privileges of the web server user. This could lead to full system compromise, data theft, or unauthorized access. Even users without admin rights could be affected if the malicious page is accessed, as the attack executes when the page is visited.

Compliance Impact

This RCE vulnerability could lead to unauthorized data access, modification, or exfiltration, violating GDPR's data protection requirements and HIPAA's security rules. Organizations may face fines, legal action, and reputational damage if exploited. Compliance with data integrity and confidentiality standards would be compromised.

Mitigation Strategies

Upgrade Grav CMS to version 2.0.7 or later immediately. If immediate upgrade is not possible, revoke admin.pages and api.pages.write permissions from non-trusted users and disable the Form plugin until patched.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-65008. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart