Grav CMS versions 2.0.7 through 2.0.10 fail to validate fully-qualified static method calls (Class::method) in blueprint dynamic-field directives because Blueprint::isSafeDynamicCall() only applies its dangerous-callable denylist to strings that do not contain '::'. An account with only page-editing rights (admin.pages, not super-admin or admin.pages_twig) can plant a directive in a page's form-field frontmatter that invokes an arbitrary public static PHP method with attacker-controlled arguments. Using built-in gadget methods this allows reading of any server-readable file (disclosed to anonymous visitors of the crafted page) and arbitrary creation/copying of files and directories under the web-server account. Fixed in 2.0.11.
History

Mon, 03 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Mon, 03 Aug 2026 13:45:00 +0000

Type Values Removed Values Added
Description Grav CMS versions 2.0.7 through 2.0.10 fail to validate fully-qualified static method calls (Class::method) in blueprint dynamic-field directives because Blueprint::isSafeDynamicCall() only applies its dangerous-callable denylist to strings that do not contain '::'. An account with only page-editing rights (admin.pages, not super-admin or admin.pages_twig) can plant a directive in a page's form-field frontmatter that invokes an arbitrary public static PHP method with attacker-controlled arguments. Using built-in gadget methods this allows reading of any server-readable file (disclosed to anonymous visitors of the crafted page) and arbitrary creation/copying of files and directories under the web-server account. Fixed in 2.0.11.
Title Grav CMS 2.0.7 through 2.0.10 Arbitrary Method Invocation via Blueprint
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-94
CPEs cpe:2.3:a:getgrav:grav:1.7.53.1:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:1.7.53.2:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:1.7.53:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.0:-:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.0:rc10:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.0:rc5:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.0:rc6:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.0:rc7:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.0:rc8:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.0:rc9:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.10:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.1:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.2:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.3:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.4:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.5:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.6:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.7:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.8:*:*:*:*:*:*:*
cpe:2.3:a:getgrav:grav:2.0.9:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

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

cvssV4_0

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


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-03T14:47:10.574Z

Reserved: 2026-08-03T10:42:57.737Z

Link: CVE-2026-69088

cve-icon Vulnrichment

Updated: 2026-08-03T14:47:04.011Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T10:30:07Z