<?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>Dalfox/V2 — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/dalfox/v2/</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>Tue, 12 May 2026 15:11:08 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/dalfox/v2/feed.xml" rel="self" type="application/rss+xml"/><item><title>Dalfox Server Mode Unauthenticated Arbitrary File Read</title><link>https://feed.craftedsignal.io/briefs/2026-05-dalfox-file-read/</link><pubDate>Tue, 12 May 2026 15:11:08 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-dalfox-file-read/</guid><description>Dalfox server mode is vulnerable to an unauthenticated arbitrary file read with out-of-band exfiltration via the `custom-payload-file` parameter, allowing attackers to read sensitive files on the host.</description><content:encoded><![CDATA[<p>Dalfox, when run in REST API server mode, is vulnerable to an unauthenticated arbitrary file read. The <code>custom-payload-file</code> field in <code>model.Options</code> is deserialized from the request body and used to read files. An attacker can exploit this by sending a POST request to the <code>/scan</code> endpoint with a <code>custom-payload-file</code> parameter pointing to a file on the server. Dalfox then reads the file line by line and includes each line as a payload in outbound HTTP requests directed at an attacker-controlled target URL. This vulnerability exists because the server, by default, does not require an API key. This allows an unauthenticated network attacker to exfiltrate the contents of arbitrary files readable by the dalfox process. The affected version is dalfox/v2 &lt;= 2.12.0.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker sends a POST request to the <code>/scan</code> endpoint of the Dalfox REST API server (typically running on <code>0.0.0.0:6664</code>).</li>
<li>The request includes a JSON body with the <code>url</code>, <code>options</code>, <code>custom-payload-file</code>, <code>skip-discovery</code>, and <code>param</code> fields set.</li>
<li>The <code>custom-payload-file</code> field contains the path to the file the attacker wants to read (e.g., <code>/etc/hostname</code>).</li>
<li>The <code>skip-discovery</code> option is set to <code>true</code>, and <code>param</code> is set to <code>[&quot;q&quot;]</code> to bypass checks.</li>
<li>Dalfox reads the specified file line by line using <code>voltFile.ReadLinesOrLiteral</code>.</li>
<li>Each line of the file is embedded as the value of the <code>q</code> query parameter in a GET request to the attacker-controlled URL.</li>
<li>Dalfox sends the HTTP GET request to the attacker&rsquo;s server, exfiltrating one line of the file.</li>
<li>The attacker receives the file content via the query parameter of the HTTP GET request.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows an attacker to read arbitrary files on the Dalfox host that the Dalfox process has access to. This includes sensitive data like SSH private keys, TLS certificates, <code>.env</code> files containing credentials, cloud credential files, and system configuration files. If combined with other vulnerabilities, such as the <code>found-action</code> RCE, the attacker could potentially gain full control of the server.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Implement the preferred remediation: Apply a denylist of fields that should never be accepted from the REST API, as suggested in the source, to prevent attackers from abusing <code>CustomPayloadFile</code> and other sensitive parameters.</li>
<li>Require the <code>--api-key</code> flag at server startup, as suggested in the source, to mandate authentication for all API requests.</li>
<li>Deploy the Sigma rule <code>Detect Dalfox Unauthenticated File Read via API</code> to detect attempts to exploit this vulnerability by monitoring HTTP POST requests to the <code>/scan</code> endpoint with a <code>custom-payload-file</code> parameter.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>unauthenticated-access</category><category>file-read</category><category>ghsa</category></item></channel></rss>