{"id":"CVE-2026-69088","aliases":["GHSA-7pgq-cr25-xvc8"],"url":"https://o3.security/vulnerability/CVE-2026-69088","summary":"Grav CMS 2.0.7 through 2.0.10 Arbitrary Method Invocation via Blueprint","details":"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.","published":"2026-08-03T13:20:42.911Z","modified":"2026-09-02T03:30:57.086822959Z","cvss":null,"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"Packagist","name":"getgrav/grav","fixedVersion":"2.0.11"}],"fix":null,"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/69xxx/CVE-2026-69088.json"},{"type":"ADVISORY","url":"https://github.com/getgrav/grav/security/advisories/GHSA-7pgq-cr25-xvc8"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-69088"},{"type":"ADVISORY","url":"https://www.vulncheck.com/advisories/grav-cms-through-arbitrary-method-invocation-via-blueprint"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-09-02T03:30:57.086822959Z"}}