<?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>Strapi — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/strapi/</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 20:05:52 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/strapi/feed.xml" rel="self" type="application/rss+xml"/><item><title>Strapi Content-Type Builder SQL Injection Vulnerability (CVE-2026-22599)</title><link>https://feed.craftedsignal.io/briefs/2026-05-strapi-sqli/</link><pubDate>Wed, 13 May 2026 20:05:52 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-strapi-sqli/</guid><description>A SQL injection vulnerability, identified as CVE-2026-22599, affects Strapi's Content-Type Builder, where an authenticated administrator could inject arbitrary database statements through the `column.defaultTo` attribute, potentially leading to arbitrary file read, denial of service, or remote code execution on the database server.</description><content:encoded><![CDATA[<p>CVE-2026-22599 is a critical SQL injection vulnerability affecting the Strapi Content-Type Builder, specifically versions &lt;=5.33.1 of <code>@strapi/content-type-builder</code> (v5) and &lt;=4.26.0 of <code>@strapi/plugin-content-type-builder</code> (v4). This vulnerability allows an authenticated administrator to inject arbitrary database statements through the <code>column.defaultTo</code> attribute during content type creation or modification. By setting <code>defaultTo</code> as a tuple <code>[value, { isRaw: true }]</code>, the provided value is directly passed to Knex&rsquo;s <code>db.connection.raw()</code> without proper sanitization, leading to arbitrary statement execution at the database layer. Successful exploitation could result in arbitrary file read, denial of service via server crash, and, depending on the database engine, remote code execution on the database server. The vulnerability can be remediated by updating Strapi to versions &gt;=5.33.2 (v5) or &gt;=4.26.1 (v4), which restricts Content-Type Builder write APIs to development mode only.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker authenticates as an administrator in Strapi.</li>
<li>The attacker crafts a malicious HTTP POST or PUT request to <code>/content-type-builder/content-types</code> or related endpoints.</li>
<li>The request includes a payload designed to create or modify a content type.</li>
<li>Within the payload, the <code>column.defaultTo</code> attribute is set with a tuple <code>[value, { isRaw: true }]</code>. The <code>value</code> contains a SQL injection payload.</li>
<li>Strapi&rsquo;s Content-Type Builder processes the request and passes the <code>value</code> directly into Knex&rsquo;s <code>db.connection.raw()</code> function.</li>
<li>The database executes the injected SQL statement, performing actions such as arbitrary file read, causing a denial-of-service by crashing the server, or potentially executing arbitrary code on the database server, depending on the database engine&rsquo;s capabilities.</li>
<li>The attacker exfiltrates sensitive data read from the file system.</li>
<li>The attacker gains unauthorized access to the Strapi application or the database server.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-22599 can lead to severe consequences, including unauthorized access to sensitive data, denial of service, and potentially remote code execution on the database server. Observed damage includes unexpected files appearing on the database host, Strapi server crashes following content-type creation or updates, and unusual DEFAULT clause values in database server logs. The vulnerability affects any Strapi instance running vulnerable versions of the <code>@strapi/content-type-builder</code> or <code>@strapi/plugin-content-type-builder</code> packages.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Immediately update Strapi to versions &gt;=5.33.2 (v5) or &gt;=4.26.1 (v4) to apply the patch that restricts Content-Type Builder write APIs to development mode, mitigating the vulnerability described in CVE-2026-22599.</li>
<li>Monitor HTTP access logs for POST or PUT requests to <code>/content-type-builder/content-types</code> endpoints from non-internal sources using the regex pattern <code>(POST|PUT)\s+/content-type-builder/</code> to identify potential exploitation attempts.</li>
<li>Analyze database server logs for unexpected DEFAULT clause values that reference filesystem-access or program-execution helper functions to detect successful SQL injection.</li>
<li>Deploy the provided Sigma rule to detect potential exploitation attempts based on HTTP requests to the Content-Type Builder endpoints.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>sql-injection</category><category>vulnerability</category><category>strapi</category></item></channel></rss>