<?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/"><channel><title>Grav - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/grav/</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, 06 May 2026 21:19:21 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/grav/feed.xml" rel="self" type="application/rss+xml"/><item><title>Grav CMS API Blueprint Upload Privilege Escalation</title><link>https://feed.craftedsignal.io/briefs/2024-01-grav-api-privesc/</link><pubDate>Wed, 06 May 2026 21:19:21 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-grav-api-privesc/</guid><description>A low-privileged authenticated API user with `api.media.write` can abuse `/api/v1/blueprint-upload` in Grav CMS to write an arbitrary YAML file into `user/accounts/`, enabling creation of a super-admin account and leading to full administrative compromise of the Grav API.</description><content:encoded><![CDATA[<p>A vulnerability in Grav CMS version <code>2.0.0-beta.2</code> allows a low-privileged, authenticated API user to escalate privileges to a super administrator. This flaw resides in the <code>/api/v1/blueprint-upload</code> endpoint. By manipulating the <code>destination</code> and <code>scope</code> parameters, an attacker can write an arbitrary YAML file into the <code>user/accounts/</code> directory. This circumvents intended access controls, allowing the creation of a new administrator account with <code>api.super</code> privileges. Exploitation requires only <code>api.media.write</code> access. Successful exploitation leads to complete control over the CMS management API, potentially enabling further attacks such as code execution. This vulnerability was disclosed on May 6, 2026, and poses a significant threat to Grav CMS installations using the API plugin.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker authenticates to the Grav CMS API using a low-privileged account with <code>api.media.write</code> permissions.</li>
<li>The attacker crafts a malicious HTTP POST request to <code>/api/v1/blueprint-upload</code>.</li>
<li>The request includes multipart form data with the <code>destination</code> parameter set to <code>self@:</code> and the <code>scope</code> parameter set to <code>users/anything</code>.</li>
<li>The request includes a <code>file</code> parameter containing a YAML file crafted to create a new admin user, including setting a plaintext password and <code>api.super</code> access.</li>
<li>The Grav CMS API resolves the file path based on the <code>destination</code> and <code>scope</code> parameters, writing the malicious YAML file to the <code>user/accounts/</code> directory.</li>
<li>The attacker authenticates to the Grav CMS API using the newly created admin user credentials defined in the YAML file.</li>
<li>The attacker successfully logs in as a super administrator, gaining full access to the Grav CMS management API.</li>
<li>The attacker leverages their elevated privileges to modify content, alter configurations, manage users, or install malicious plugins/themes, ultimately achieving complete CMS compromise.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation grants an attacker full control over the Grav CMS instance.  An attacker can modify website content, alter configurations, manage users (including creating additional administrator accounts), install or update plugins/themes, and access system-level administration features. This can lead to complete CMS compromise, potentially resulting in data theft, defacement, or further exploitation, such as server-side code execution. The vulnerability allows any user with limited API access (<code>api.media.write</code>) to create a super administrator account, drastically increasing the attack surface and potential for widespread damage.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Grav CMS to version <code>2.0.0-beta.4</code> or later to patch the vulnerability as per the advisory (<a href="https://github.com/advisories/GHSA-6xx2-m8wv-756h)">https://github.com/advisories/GHSA-6xx2-m8wv-756h)</a>.</li>
<li>Deploy the Sigma rule <code>Detect Grav CMS Malicious Blueprint Upload</code> to detect attempts to exploit this vulnerability by monitoring for suspicious blueprint uploads to the <code>user/accounts</code> directory.</li>
<li>Implement the Sigma rule <code>Detect Grav CMS New Admin User Creation via API</code> to identify the creation of new admin users via the API endpoint.</li>
<li>Restrict <code>api.media.write</code> permissions to only trusted users, reducing the potential attack surface.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>gravcms</category><category>privilege-escalation</category><category>yaml-injection</category></item><item><title>Grav CMS Privilege De-escalation via User Overwrite</title><link>https://feed.craftedsignal.io/briefs/2026-05-grav-privilege-deescalation/</link><pubDate>Wed, 06 May 2026 14:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-grav-privilege-deescalation/</guid><description>A low-privileged user with user creation permissions in Grav CMS can overwrite existing accounts, including the primary administrator, leading to a Denial of Service (DoS) and privilege de-escalation by exploiting a business logic vulnerability in versions prior to 2.0.0-beta.2.</description><content:encoded><![CDATA[<p>Grav CMS versions prior to 2.0.0-beta.2 are vulnerable to a privilege de-escalation attack. A low-privileged user with the <code>admin.users.create</code> permission can overwrite the primary administrator account by creating a new user with the same username. Due to an insecure &quot;Create or Update&quot; logic, the system updates the existing account's metadata and permissions instead of rejecting the request. Although the attacker cannot directly elevate their own privileges, they can effectively disable administrative accounts, leading to a complete loss of management control over the CMS. This vulnerability was addressed in Grav core on April 24, 2026, with commit d904efc33.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An administrator creates a low-privileged user (e.g., adminuser) and grants them the <code>admin.users.create</code> permission.</li>
<li>The low-privileged user logs into the Grav Admin Panel.</li>
<li>The user navigates to the user creation page.</li>
<li>The user fills out the &quot;Add User&quot; form, using the username of an existing administrator account (e.g., root0).</li>
<li>The user submits the form, which triggers the vulnerable <code>UserObject::save</code> function.</li>
<li>The system overwrites the administrator account's configuration file (e.g., user/accounts/root0.yaml) with the provided details, effectively stripping the administrator's permissions.</li>
<li>The administrator attempts to log in, but their account now has reduced or no administrative privileges.</li>
<li>The attacker has effectively achieved privilege de-escalation, causing a denial of service for the administrator.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows a low-privileged user to disable all administrative accounts in the Grav CMS. This leads to a complete loss of management control over the CMS, potentially impacting any Grav installation where non-admin users are granted permission to create other users. The vulnerability has been assigned CVE-2026-42609 with a severity rating of High.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Grav CMS to version 2.0.0-beta.2 or later to address the vulnerability described in this brief.</li>
<li>Review user permissions and restrict <code>admin.users.create</code> permissions to trusted users only, particularly in versions prior to 2.0.0-beta.2.</li>
<li>Monitor webserver logs for unusual user creation requests, specifically attempts to create users with existing administrator usernames using the Sigma rule provided below.</li>
<li>Audit user accounts regularly to detect any unauthorized changes in permissions.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>privilege-escalation</category><category>denial-of-service</category><category>web-application</category></item></channel></rss>