{"id":"GHSA-vj8j-973f-r65j","title":"Duplicate Advisory: Grav: Incomplete callable validation in blueprint dynamic fields allows arbitrary static method invocation and file disclosure","summary":"Duplicate Advisory: Grav: Incomplete callable validation in blueprint dynamic fields allows arbitrary static method invocation and file disclosure","severity":"high","cvss":8.1,"cwe":["CWE-94"],"vendor":"getgrav","product":"getgrav/grav","ecosystem":"composer","affected":["getgrav/grav >= 2.0.7, <= 2.0.10"],"published":"2026-08-03","updated":"2026-09-17","sourceUpdated":"2026-09-17T17:16:31Z","source":"GHSA","sourceUrl":"https://github.com/advisories/GHSA-vj8j-973f-r65j","references":[{"url":"https://github.com/getgrav/grav/security/advisories/GHSA-7pgq-cr25-xvc8"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-69088"},{"url":"https://www.vulncheck.com/advisories/grav-cms-through-arbitrary-method-invocation-via-blueprint"},{"url":"https://github.com/advisories/GHSA-vj8j-973f-r65j"}],"tags":["ghsa","composer"],"ingestedAt":"2026-09-17T17:23:30.685Z","slug":"GHSA-vj8j-973f-r65j","body":"## Overview\n\n### Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-7pgq-cr25-xvc8. This link is maintained to preserve external references.\n\n### Original Description\nGrav 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.\n\n## Affected packages\n\n- `getgrav/grav >= 2.0.7, <= 2.0.10`\n\n## Remediation\n\nRefer to the advisory for the patched release.","depth":"twilight","depthScore":45,"depthScoreParts":{"impact":44.6,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}