<?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>Frankenphp — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/frankenphp/</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, 15 May 2026 17:10:46 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/frankenphp/feed.xml" rel="self" type="application/rss+xml"/><item><title>FrankenPHP Unsafe Unicode Handling in CGI Path Splitting Allows Execution of Non-PHP Files</title><link>https://feed.craftedsignal.io/briefs/2026-05-unsafe-unicode-frankenphp/</link><pubDate>Fri, 15 May 2026 17:10:46 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-unsafe-unicode-frankenphp/</guid><description>Two distinct flaws in the `splitPos()` function in `cgi.go` allows an attacker to mislead FrankenPHP into treating a non-`.php` file as a `.php` script, leading to remote code execution where the attacker can control file content.</description><content:encoded><![CDATA[<p>The <code>splitPos()</code> function in <a href="https://github.com/php/frankenphp/blob/main/cgi.go"><code>cgi.go</code></a> in FrankenPHP versions 1.11.2 through 1.12.2 misuses <code>golang.org/x/text/search</code> with <code>search.IgnoreCase</code> when a request path contains a non-ASCII byte. This can lead to two distinct flaws where an attacker can trick FrankenPHP into interpreting non-<code>.php</code> files as PHP scripts. In scenarios where an attacker has the ability to place content into files served by FrankenPHP, like upload endpoints or file storage services, this can be exploited to achieve remote code execution by crafting a specific URL that triggers either of the identified vulnerabilities. These vulnerabilities were reported by @KC1zs4.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker gains the ability to upload or place files with arbitrary content and names into a directory served by FrankenPHP (e.g., via a file upload endpoint).</li>
<li>The attacker crafts a malicious file with PHP code, giving it a name designed to exploit either of the <code>splitPos()</code> flaws (e.g., <code>shell﹒php</code> or <code>name.¡.txt</code>).</li>
<li>The attacker sends an HTTP request to the FrankenPHP server, targeting the uploaded file via a crafted URL.</li>
<li>The <code>splitPos()</code> function incorrectly identifies the path as a PHP file due to the Unicode equivalence or non-ASCII handling issues.</li>
<li>FrankenPHP sets the <code>SCRIPT_FILENAME</code> to the path of the attacker&rsquo;s malicious file.</li>
<li>The PHP interpreter processes the attacker-controlled file as a PHP script.</li>
<li>The attacker&rsquo;s PHP code executes within the FrankenPHP process, granting the attacker remote code execution.</li>
<li>The attacker can then perform actions such as reading sensitive data, writing files, or executing system commands on the server.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows an unauthenticated attacker to achieve remote code execution on systems running vulnerable versions of FrankenPHP. This is possible in scenarios where the attacker can upload or place files with predictable names into directories served by FrankenPHP. The impact is similar to CVE-2026-24895, but requires the ability to control file content and name. A successful attack can lead to complete compromise of the server, including data theft, modification, and denial of service. CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H — High (8.1).</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to a FrankenPHP version beyond 1.12.2 where the vulnerable code has been removed.</li>
<li>Deploy the following Sigma rule to detect attempts to exploit this vulnerability using Unicode characters in the file path.</li>
<li>Implement strict file naming conventions and input validation to prevent the upload of files with non-ASCII characters in their names.</li>
<li>Monitor web server logs for requests containing Unicode characters or unusual file extensions that could indicate exploitation attempts, as shown in the detection rules below.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>unicode</category><category>remote code execution</category><category>web server</category></item></channel></rss>