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.
Published: 2026-07-21
Score: 9.3 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Grav 2.0.4 allows an attacker with administrative page write permissions to embed a callable string in a page’s frontmatter, which the Blueprint::dynamicData() function then passes directly to call_user_func_array(). The absence of an allowlist enables the execution of arbitrary PHP code on the web‑server user, resulting in full remote code execution.

Affected Systems

The vulnerability affects all installations of Grav CMS version 2.0.4 and earlier, including the default distribution from getgrav:grav. Users running any pre‑2.0.7 release are susceptible.

Risk and Exploitability

The CVSS score of 9.3 reflects a critical impact. Even though the EPSS score is below 1% and the issue is not listed in CISA KEV, the combination of an authenticated vulnerability that can be activated by unauthenticated visitors makes it a high‑risk target. An attacker only needs to be allocated the admin.pages or api.pages.write privilege to inject the malicious directive, after which any visitor to the modified page will trigger code execution on the server. The attack vector is authenticated privilege escalation followed by passive exploitation via normal page access.

Generated by OpenCVE AI on July 30, 2026 at 17:53 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Grav to version 2.0.7 or later, which contains the patched Blueprint::dynamicData implementation.
  • If an immediate upgrade is not possible, disable or remove the form plugin that routes page frontmatter through the vulnerable function, or replace it with a secure alternative.
  • Limit the use of the admin.pages and api.pages.write permissions to only those users who absolutely require them; remove these permissions from all other accounts to prevent future exploitation.

Generated by OpenCVE AI on July 30, 2026 at 17:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 22 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 21 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
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.
Title Grav before 2.0.7 Remote Code Execution via Blueprint dynamicData
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-94
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 9.3, '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-22T14:20:53.883Z

Reserved: 2026-07-21T11:32:54.897Z

Link: CVE-2026-65008

cve-icon Vulnrichment

Updated: 2026-07-22T14:20:49.848Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-30T18:00:15Z

Weaknesses
  • CWE-94

    Improper Control of Generation of Code ('Code Injection')