<?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>Cve-2026-74907 - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/cve-2026-74907/</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>Fri, 18 Sep 2026 01:10:51 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/cve-2026-74907/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>Grav Privilege Escalation via Group Blueprint ACL Bypass</title><link>https://feed.craftedsignal.io/briefs/2026-09-grav-privilege-escalation/</link><pubDate>Fri, 18 Sep 2026 01:10:51 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-grav-privilege-escalation/</guid><description>A missing 'security@' guard in Grav's group blueprint allows an 'admin.users' operator to escalate privileges to 'admin.super' by modifying group access configurations.</description><content:encoded><![CDATA[<p>Grav version 2.0.12 and earlier contains a privilege escalation vulnerability within its Flex group management functionality. The core group blueprint file located at <code>system/blueprints/user/group.yaml</code> omits a mandatory <code>security@: admin.super</code> guard on the group access field. In the Grav Flex architecture, the <code>security@</code> guard is the primary mechanism that flags fields for exclusion during the data save path for non-super users.</p>
<p>Because this guard is missing from the group blueprint, a delegated administrator holding only <code>admin.users.update</code> permissions can successfully submit a request to update a group's access map. By injecting <code>admin.super: true</code> into the group's access configuration, the attacker effectively grants the 'super-admin' role to all members of that group. This escalation provides full administrative control over the application, including access to the scheduler, which can be leveraged for Remote Code Execution (RCE) via cron jobs, and potential Twig template evaluation.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Initial Access: The attacker authenticates as a user with <code>admin.users.update</code> permissions, which is typically granted to delegated administrators responsible for user management.</li>
<li>Discovery: The attacker identifies that they can modify group access configurations, as the application exposes groups at the <code>admin.users:crudl</code> path, which the attacker has permission to update.</li>
<li>Form Submission: The attacker sends a <code>POST</code> request to the <code>/admin/accounts/groups/</code> endpoint, embedding the malicious payload <code>access[admin][super]=true</code> within the group update data.</li>
<li>Blueprint Bypass: The system's <code>Blueprint::dynamicSecurity</code> check fails to flag the <code>access</code> field as restricted because the <code>group.yaml</code> blueprint lacks the required <code>security@: admin.super</code> declaration.</li>
<li>Validation Bypass: The <code>BlueprintSchema::filterArray</code> and <code>Validation::filterArray</code> logic processes the payload and retains the restricted <code>admin.super</code> key because the input is not marked for filtering.</li>
<li>Persistence: The application saves the unauthorized access configuration to <code>user://config/groups.yaml</code> via the <code>FlexObject::update()</code> path without further authorization checks.</li>
<li>Privilege Escalation: Upon the next request, the <code>UserGroupObject::authorize('admin.super')</code> method evaluates the modified group ACL and returns true, promoting the attacker to full super-admin status.</li>
<li>Impact: The attacker utilizes the escalated super-admin privileges to access the administrative dashboard, modify scheduler tasks, or execute malicious Twig templates to achieve RCE.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation results in full administrative control (C:H/I:H/A:H) over the Grav instance. The attacker gains the ability to manage all users, execute arbitrary code via the scheduler, and modify system files. This vulnerability affects all Grav versions up to and including 2.0.12.</p>
<h2 id="recommendation">Recommendation</h2>
<p>Prioritized actions for security and IT operations teams:</p>
<ul>
<li>Update Grav to version 2.0.14 or later immediately to incorporate the required blueprint security guards.</li>
<li>Audit existing <code>user://config/groups.yaml</code> files for any unauthorized <code>admin.super: true</code> entries in group access maps.</li>
<li>Review all users currently holding the <code>admin.users</code> role to identify accounts that should not have the ability to modify group permissions.</li>
<li>Use server-side web application logs to monitor for unauthorized <code>POST</code> requests to <code>/admin/accounts/groups/</code> originating from non-super-admin accounts.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>privilege-escalation</category><category>cms</category><category>vulnerability</category><category>web-application-vulnerability</category><category>path-traversal</category><category>cve-2026-74907</category><category>twig</category><category>security-misconfiguration</category></item></channel></rss>