Description
Grav is a file-based Web platform. Prior to 2.0.7, Grav Blueprint::dynamicData() in system/src/Grav/Common/Data/Blueprint.php sends an editor-controlled Class::method provider and arguments to call_user_func_array() without rejecting dangerous callback parameters. An account with admin.pages or api.pages.write can use Grav\Common\Utils::arrayFilterRecursive() as a trampoline with system as the callback, place a command in page frontmatter, and execute that command as the web server user when the page is viewed. This issue is fixed in version 2.0.7.
Published: 2026-08-19
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Grav is a file‑based web platform. In versions prior to 2.0.7, the function Blueprint::dynamicData() forwards editor‑controlled class and method names to call_user_func_array without filtering dangerous callbacks. An attacker with either admin.pages or api.pages.write permissions can use the arrayFilterRecursive helper as a trampoline, place an arbitrary system command in page front‑matter, and have that command executed as the web server user when the page is rendered. This flaw directly enables remote code execution under the web server’s privileges. The root weakness combines unchecked user input with code execution, falling under CWE‑94 (Code Injection).

Affected Systems

Grav CMS – all 2.0.x releases prior to 2.0.7. Accounts with admin.pages or api.pages.write permissions are capable of exploiting the vulnerability. The vulnerability was fixed in 2.0.7, so any deployment running an older 2.0 release remains affected.

Risk and Exploitability

With a CVSS score of 8.7 the flaw is classified as high severity. The EPSS score of 0.00343% indicates a very low probability of exploitation, and it is not listed in CISA’s KEV catalog, indicating no known widespread exploitation yet. However, the attack vector requires user authentication with page‑write or admin privileges, which many installations grant to site administrators. An attacker who gains such permissions can immediately trigger arbitrary code execution by crafting malicious front‑matter. While no public exploit is documented in the advisory, the technical details make the vulnerability highly exploitable in the right environment.

Generated by OpenCVE AI on August 20, 2026 at 15:05 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the vendor’s fix by upgrading to Grav 2.0.7 or newer.
  • Revoke or limit admin.pages and api.pages.write permissions to trusted accounts only, reducing the attack surface.
  • Remove or sanitize any user‑supplied commands from page front‑matter and audit existing pages for unintended code execution.

Generated by OpenCVE AI on August 20, 2026 at 15:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-fj2p-qj2f-74v5 Grav: Remote code execution via unrestricted callable in Blueprint::dynamicData()
History

Wed, 19 Aug 2026 19:00:00 +0000

Type Values Removed Values Added
First Time appeared Getgrav
Getgrav grav
Vendors & Products Getgrav
Getgrav grav

Wed, 19 Aug 2026 16:00:00 +0000

Type Values Removed Values Added
Description Grav is a file-based Web platform. Prior to 2.0.7, Grav Blueprint::dynamicData() in system/src/Grav/Common/Data/Blueprint.php sends an editor-controlled Class::method provider and arguments to call_user_func_array() without rejecting dangerous callback parameters. An account with admin.pages or api.pages.write can use Grav\Common\Utils::arrayFilterRecursive() as a trampoline with system as the callback, place a command in page frontmatter, and execute that command as the web server user when the page is viewed. This issue is fixed in version 2.0.7.
Title Grav: Remote code execution via unrestricted callable in Blueprint::dynamicData()
Weaknesses CWE-94
References
Metrics cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-19T17:51:53.967Z

Reserved: 2026-07-20T18:31:39.290Z

Link: CVE-2026-64850

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-19T16:18:39.760

Modified: 2026-08-19T18:17:10.410

Link: CVE-2026-64850

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-20T15:15:03Z

Weaknesses
  • CWE-94

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