<?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/vendors/grav/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Tue, 09 Jan 2024 12:00:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/grav/feed.xml" rel="self" type="application/rss+xml"/><item><title>Grav CMS Multiple RCE Vulnerabilities</title><link>https://feed.craftedsignal.io/briefs/2024-01-grav-rce/</link><pubDate>Tue, 09 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-grav-rce/</guid><description>Multiple critical and high severity remote code execution vulnerabilities exist in Grav CMS due to unsafe unserialize functions, command injection in git clone, and an SSTI blocklist bypass, impacting versions prior to 2.0.0-beta.2.</description><content:encoded><![CDATA[<p>Multiple remote code execution (RCE) vulnerabilities have been identified in Grav CMS, a flat-file content management system. These vulnerabilities, including unsafe unserialize functions in JobQueue, FileCache, and Session, a command injection in git clone, and a server-side template injection (SSTI) blocklist bypass, allow attackers to execute arbitrary code on affected systems. The vulnerabilities are present in Grav CMS versions prior to 2.0.0-beta.2 and were patched in commit c66dfeb5f and 38685ac25. Successful exploitation of these vulnerabilities could lead to complete system compromise, data theft, and disruption of service. The most concerning are the unserialize issues, as they do not require admin access and can be triggered by any file write primitive.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker gains the ability to write files to the Grav CMS server, either through an existing vulnerability (e.g., file upload) or misconfiguration.</li>
<li>The attacker crafts a serialized PHP object containing malicious code.</li>
<li>For JobQueue or FileCache exploitation, the attacker writes this serialized object to the appropriate cache file location. For Session exploitation, the attacker sets a crafted serialized object within a session variable.</li>
<li>The Grav CMS application deserializes the crafted object using <code>unserialize()</code>, without proper input validation.</li>
<li>The deserialization process instantiates the malicious object, triggering the execution of arbitrary code. Specifically, the JobQueue vulnerability allows direct RCE via <code>Job::exec → call_user_func_array</code>.</li>
<li>For the git clone command injection, an administrator attempts to install a malicious plugin or theme. The attacker injects commands into the <code>branch</code>, <code>url</code>, or <code>path</code> parameters within the plugin&rsquo;s or theme&rsquo;s configuration.</li>
<li>The <code>InstallCommand.php</code> script executes a <code>git clone</code> command, incorporating the attacker-controlled parameters without proper sanitization.</li>
<li>The injected commands are executed on the server, granting the attacker arbitrary code execution.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of these vulnerabilities can lead to complete system compromise. An attacker could gain unauthorized access to sensitive data, modify website content, install backdoors, or use the compromised server as a launchpad for further attacks. The unserialize vulnerabilities are especially critical as they do not require administrative privileges if an attacker can write to the cache directory. The impact includes potential data theft, service disruption, and reputational damage.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Grav CMS to version 2.0.0-beta.2 or later to patch the vulnerabilities described in this brief.</li>
<li>Implement the Sigma rule <code>Detect Unsafe PHP Unserialize</code> to identify attempts to exploit the unserialize vulnerabilities in web server logs.</li>
<li>Review and harden file upload and file management functionalities to prevent unauthorized file writes to the Grav CMS server.</li>
<li>Monitor process creation events for git commands executed by the web server user, using the Sigma rule <code>Detect Git Clone Command Injection</code>.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">threat</category><category>rce</category><category>unserialize</category><category>command-injection</category><category>ssti</category></item><item><title>Grav Login Plugin Privilege Escalation Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-01-grav-privesc/</link><pubDate>Wed, 03 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-grav-privesc/</guid><description>Unauthenticated users can escalate privileges to admin in Grav CMS by manipulating registration data due to missing server-side validation in the Login plugin.</description><content:encoded><![CDATA[<p>A critical privilege escalation vulnerability exists in the Grav CMS Login plugin, version 3.8.0, affecting Grav Core versions prior to 2.0.0-beta.2. The vulnerability stems from the <code>Login::register()</code> method not validating the <code>groups</code> and <code>access</code> fields during user registration. If registration is enabled and these fields are included in the allowed registration fields, an unauthenticated user can craft a malicious registration request to assign themselves admin privileges. This can lead to complete compromise of the Grav CMS instance, allowing attackers to modify content, install malicious plugins, and potentially execute arbitrary code. The vulnerability is tracked as CVE-2026-42613. The fix was applied on 2026-04-24 and released in grav-plugin-login 3.8.2.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker identifies a Grav CMS instance with user registration enabled and the <code>groups</code> or <code>access</code> fields included in the allowed registration fields.</li>
<li>The attacker crafts a malicious HTTP POST request to the <code>/user_register</code> endpoint, including <code>username</code>, <code>password</code>, <code>email</code>, and <code>fullname</code> fields.</li>
<li>The attacker injects <code>groups</code> and <code>access</code> fields into the POST request with values designed to grant admin privileges (e.g., <code>groups[]=admins</code>, <code>access[admin][super]=true</code>).</li>
<li>The <code>Login::register()</code> method processes the registration data without proper validation of the injected <code>groups</code> and <code>access</code> fields.</li>
<li>The attacker-controlled <code>groups</code> and <code>access</code> values are assigned directly to the newly created user object.</li>
<li>The user object is saved, creating a new user account with admin privileges in the <code>user/accounts/</code> directory.</li>
<li>The attacker logs in to the Grav admin panel using the newly created account.</li>
<li>The attacker leverages their admin access to install malicious plugins or execute arbitrary code on the server, achieving complete system compromise.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability grants unauthenticated attackers full administrative access to the Grav CMS instance. This can lead to complete website defacement, data exfiltration, or remote code execution. Since no victim count or specific sector targeting is mentioned in the advisory, we can assume any Grav instance with the vulnerable configuration is at risk, potentially impacting numerous websites and organizations relying on Grav CMS.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to grav-plugin-login version 3.8.2 or later to patch CVE-2026-42613.</li>
<li>If upgrading is not immediately feasible, remove <code>groups</code> and <code>access</code> from the allowed registration fields in the Login plugin configuration.</li>
<li>Deploy the Sigma rule <code>Detect Malicious Grav User Registration</code> to identify registration attempts with injected admin privileges based on user-registration requests.</li>
<li>Monitor web server logs for POST requests to the <code>/user_register</code> endpoint containing <code>groups</code> or <code>access</code> parameters using the <code>Grav Registration Attempt with Group/Access Parameters</code> Sigma rule.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>grav</category><category>privilege-escalation</category><category>web</category></item></channel></rss>