<?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>Secret-Exfiltration — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/secret-exfiltration/</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, 13 May 2026 15:32:37 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/secret-exfiltration/feed.xml" rel="self" type="application/rss+xml"/><item><title>Grav CMS Twig Sandbox Vulnerability Allows Plugin Secret Exfiltration</title><link>https://feed.craftedsignal.io/briefs/2026-05-grav-twig-rce/</link><pubDate>Wed, 13 May 2026 15:32:37 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-grav-twig-rce/</guid><description>A vulnerability in the Grav CMS Twig sandbox allow-list allows any user with the `admin.pages` role to call `config.toArray()` from within a page body, dumping the entire merged site configuration, including all plugin secrets, into the rendered HTML.</description><content:encoded><![CDATA[<p>A vulnerability exists in Grav CMS version 2.0.0-rc.1 and earlier that allows users with the <code>admin.pages</code> role to exfiltrate sensitive configuration data. The Twig sandbox configuration permits calls to the <code>Config::toArray()</code> method, which exposes the entire merged site configuration, including plugin secrets. An editor-role user can inject a Twig code snippet into a page&rsquo;s content, causing the full configuration to be rendered as JSON within the HTML. This issue was reported on May 13, 2026, and poses a significant risk to Grav CMS deployments by allowing unauthorized access to sensitive credentials. No administrator privileges are required for this exploit, broadening the attack surface.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker obtains editor-level access (<code>admin.pages</code> role) to the Grav CMS admin panel.</li>
<li>Attacker crafts a page with <code>process.twig: true</code> in the frontmatter to enable Twig processing.</li>
<li>Attacker inserts the payload <code>{{ config.toArray()|json_encode|raw }}</code> into the page body.</li>
<li>Attacker saves the page through the admin panel.</li>
<li>The Grav CMS renders the page, executing the Twig code.</li>
<li>The <code>config.toArray()</code> function dumps the entire merged site configuration as a JSON string.</li>
<li>The JSON string, containing sensitive plugin secrets, is embedded within the rendered HTML of the page.</li>
<li>Attacker accesses the rendered page, extracts the JSON string, and obtains plugin credentials.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows any user with the editor role (<code>admin.pages</code>) to exfiltrate all plugin credentials stored in the Grav CMS site configuration. This includes sensitive information such as SMTP passwords, AWS access/secret keys, OAuth client secrets, reCAPTCHA keys, and other API tokens. The compromise of these credentials can lead to unauthorized access to connected services, data breaches, and further lateral movement within the affected systems.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Grav CMS to a version beyond 2.0.0-rc.1 to address CVE-2026-44738.</li>
<li>Remove or restrict access to the <code>toArray</code> method in the Twig sandbox configuration (<code>system/config/security.yaml</code>) for the <code>Grav\Common\Config\Config</code> class to prevent unauthorized access to sensitive configuration data.</li>
<li>Deploy the Sigma rule <code>Detect Grav CMS Config Exfiltration via Twig</code> to monitor for exploitation attempts.</li>
<li>Review and rotate any exposed credentials to minimize the impact of potential compromise.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>grav</category><category>twig</category><category>rce</category><category>secret-exfiltration</category></item></channel></rss>