<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:* - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/cpes/cpe2.3agetgravgrav/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Wed, 02 Sep 2026 18:04:09 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/cpes/cpe2.3agetgravgrav/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Remote Code Execution in Grav via Blueprint dynamicData</title><link>https://feed.craftedsignal.io/briefs/2026-09-grav-rce/</link><pubDate>Wed, 02 Sep 2026 18:04:09 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-grav-rce/</guid><description>An attacker with administrative page-editing permissions can achieve remote code execution in Grav versions prior to 2.0.7 by injecting arbitrary callables into page frontmatter, which are subsequently triggered by visitor requests.</description><content:encoded><![CDATA[<p>Grav CMS versions prior to 2.0.7 are susceptible to a remote code execution (RCE) vulnerability identified as CVE-2026-64850. The vulnerability stems from the <code>Blueprint::dynamicData()</code> method, which performs insufficient validation on class method inputs. Specifically, the application uses <code>call_user_func_array()</code> with input derived from page frontmatter without implementing an allowlist.</p>
<p>An attacker with <code>admin.pages</code> or <code>api.pages.write</code> permissions can craft a malicious page configuration that designates <code>Grav\Common\Utils::arrayFilterRecursive</code> as a callable to execute system-level commands. Because the frontmatter is processed when a page is rendered, the payload executes with the privileges of the web-server user whenever a visitor (including unauthenticated users) requests the page. This vulnerability effectively escalates a compromise of administrative page-editing rights to full system-level code execution on the underlying server.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker obtains valid <code>admin.pages</code> or <code>api.pages.write</code> permissions, likely via compromised administrative credentials.</li>
<li>Attacker logs into the Grav administrative interface and navigates to the page creation or editing module.</li>
<li>Attacker crafts a custom page containing malicious YAML frontmatter, specifically targeting the form plugin's field definitions.</li>
<li>Attacker inserts a <code>data-opts@</code> directive into the frontmatter, pointing to <code>Grav\Common\Utils::arrayFilterRecursive</code> as the callable.</li>
<li>Attacker embeds the target system command (e.g., <code>id</code>) within the frontmatter payload, passing it as the primary argument to the function.</li>
<li>Attacker saves the page configuration to the Grav CMS data store.</li>
<li>Attacker (or any subsequent visitor) triggers a GET request to the path corresponding to the malicious page.</li>
<li>Grav CMS processes the page frontmatter, invokes the malicious callable via <code>dynamicData()</code>, and executes the command on the web server.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation results in arbitrary remote code execution on the host server under the context of the web-server user (e.g., <code>www-data</code> or <code>apache</code>). This allows for full system control, potential data exfiltration, or lateral movement within the hosting environment. Any user with page-editing privileges can turn a legitimate site into a persistent execution platform that triggers malicious commands upon every page view.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade all Grav CMS installations to version 2.0.7 or later to address the insecure <code>call_user_func_array</code> invocation in <code>Blueprint.php</code>.</li>
<li>Audit current administrative accounts for <code>admin.pages</code> or <code>api.pages.write</code> permissions to ensure they are restricted to authorized personnel only.</li>
<li>Implement monitoring for POST requests to the Grav admin interface followed by anomalous GET requests to newly created or modified pages that may indicate payload testing.</li>
<li>Review system-level web server logs for suspicious process execution (e.g., <code>id</code>, <code>whoami</code>, <code>curl</code>, <code>wget</code>) originating from the web server process user.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>remote-code-execution</category><category>cms</category><category>web-vulnerability</category></item></channel></rss>