CVE-2026-64850
HighCVSS 8.7Summary
Grav prior to 2.0.7 has a vulnerability in Blueprint::dynamicData() in system/src/Grav/Common/Data/Blueprint.php that 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.
Risk Assessment
An attacker can execute arbitrary commands on the web server, leading to full system compromise.
Recommendation
Upgrade Grav to version 2.0.7 or later.
Original NVD description (English source)
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.

