<?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 — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/dalfox/</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/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><item><title>Dalfox Unauthenticated Remote DoS via Closed-Channel Write in ParameterAnalysis</title><link>https://feed.craftedsignal.io/briefs/2026-05-dalfox-dos/</link><pubDate>Tue, 12 May 2026 15:10:28 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-dalfox-dos/</guid><description>Dalfox is vulnerable to an unauthenticated remote denial-of-service (DoS) vulnerability (CVE-2026-45090) due to a closed channel write in the `ParameterAnalysis` function, triggered by a crafted POST request that crashes the Dalfox server process.</description><content:encoded><![CDATA[<p>Dalfox, a security tool, is susceptible to an unauthenticated remote denial-of-service vulnerability (CVE-2026-45090) within its <code>ParameterAnalysis</code> function. This vulnerability arises from a two-stage worker design where the second stage inadvertently utilizes a closed channel from the first stage. When a scanned parameter is reflected during the second stage of the analysis and <code>processParams</code> attempts to write to this already-closed channel, it triggers a Go runtime panic, resulting in the termination of the entire Dalfox process in server mode. This can be exploited remotely by any unauthenticated caller with network access to the Dalfox REST API, as the default configuration lacks an API key and the second stage activates whenever <code>options.Data != &quot;&quot;</code> (i.e., the attacker supplies the <code>data</code> field) and the target reflects at least one parameter. This issue affects Dalfox versions 2.12.0 and earlier.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker sends a POST request to the <code>/scan</code> endpoint of the Dalfox REST API server.</li>
<li>The attacker includes a <code>url</code> parameter pointing to a controlled, reflective HTTP server (e.g., <code>http://127.0.0.1:18083/?q=test</code>).</li>
<li>The attacker includes a JSON payload containing <code>options</code> with <code>&quot;data&quot;: &quot;q=test&quot;</code>, <code>&quot;mining-dict&quot;: true</code>, and <code>&quot;use-headless&quot;: false</code>.</li>
<li>The <code>options.Data</code> value triggers the activation of the second worker stage in <code>ParameterAnalysis</code>.</li>
<li>The <code>mining-dict: true</code> setting populates the POST-body parameter map (<code>dp</code>) with numerous entries from the GF-XSS wordlist.</li>
<li>The target server reflects the <code>q</code> parameter, causing the <code>vrs</code> variable to evaluate to true within the <code>processParams</code> function.</li>
<li><code>processParams</code> attempts to send a <code>paramResult</code> to the closed <code>results</code> channel: <code>results &lt;- paramResult</code>.</li>
<li>This operation triggers a Go runtime panic because the <code>results</code> channel was already closed after the first stage of <code>ParameterAnalysis</code>, causing the Dalfox server process to crash.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>A successful exploit results in a complete crash of the Dalfox server process upon receiving a single unauthenticated POST request. This leads to the loss of any in-flight scan results, and requires a manual restart of the server. If Dalfox is managed by an automated process manager (such as systemd or Docker with <code>--restart=always</code>), this vulnerability can lead to a denial-of-service loop, as the server will repeatedly crash and restart upon receiving malicious requests. The attack requires network access to port 6664 (the default Dalfox API port) and a reflective HTTP server accessible to the Dalfox instance.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the suggested fix (Option 1) by allocating a fresh <code>results</code> channel for the second stage within the <code>ParameterAnalysis</code> function to prevent writing to a closed channel.</li>
<li>As a temporary measure, implement Option 3 and add a <code>recover</code> statement in the <code>processParams</code> goroutines to catch the panic and prevent the process from crashing while a proper fix is deployed.</li>
<li>Deploy the Sigma rule &ldquo;Detect Dalfox DoS Attack via /scan Endpoint&rdquo; to detect POST requests to the <code>/scan</code> endpoint with the specific <code>options</code> payload that triggers the vulnerability.</li>
<li>Monitor Dalfox server logs for &ldquo;panic: send on closed channel&rdquo; messages originating from <code>pkg/scanning/parameterAnalysis.go:299</code>, which indicates a successful exploit of CVE-2026-45090.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>dos</category><category>vulnerability</category><category>dalfox</category></item><item><title>Dalfox Server Mode Vulnerable to Unauthenticated Remote Code Execution via `found-action`</title><link>https://feed.craftedsignal.io/briefs/2026-05-dalfox-rce/</link><pubDate>Tue, 12 May 2026 15:10:12 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-dalfox-rce/</guid><description>Dalfox in REST API server mode is vulnerable to unauthenticated remote code execution (CVE-2026-45087) because the server binds to 0.0.0.0:6664 by default without requiring an API key and deserializes attacker-supplied JSON in `POST /scan` without stripping the `FoundAction` and `FoundActionShell` fields, allowing arbitrary command execution.</description><content:encoded><![CDATA[<p>Dalfox, a security auditing tool, is vulnerable to unauthenticated remote code execution (CVE-2026-45087) when running in REST API server mode (<code>dalfox server</code>) with default settings. The server binds to <code>0.0.0.0:6664</code> and, unless explicitly configured with <code>--api-key</code>, does not require authentication. A flaw exists in how the server handles <code>model.Options</code>, specifically <code>FoundAction</code> and <code>FoundActionShell</code>, which are deserialized directly from attacker-supplied JSON in <code>POST /scan</code>. Because <code>dalfox.Initialize</code> propagates these fields into the final scan options without sanitization, any unauthenticated attacker can execute arbitrary shell commands on the host OS whenever a scan finding is triggered. This vulnerability affects dalfox versions 2.12.0 and earlier.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker starts a <code>dalfox server</code> instance in REST API mode without specifying an API key, leaving it open to unauthenticated access.</li>
<li>The attacker sets up a malicious web server that reflects input, ensuring any scan against it will produce a finding.</li>
<li>The attacker crafts a <code>POST</code> request to the <code>/scan</code> endpoint of the dalfox server.</li>
<li>The request includes a JSON payload containing the URL of the malicious web server and <code>options</code> with malicious values for <code>found-action</code> and <code>found-action-shell</code>.</li>
<li>The <code>postScanHandler</code> deserializes the JSON payload into a <code>Req</code> struct, including the <code>options</code> field which contains the malicious <code>FoundAction</code> and <code>FoundActionShell</code> values.</li>
<li>The <code>ScanFromAPI</code> function is called, passing the attacker-controlled options to <code>dalfox.Initialize</code>.</li>
<li><code>dalfox.Initialize</code> copies the attacker-supplied <code>FoundAction</code> and <code>FoundActionShell</code> values into the scan options without sanitization.</li>
<li>When a finding is triggered during the scan, the <code>foundAction</code> function executes the attacker-supplied shell command using <code>exec.Command</code>, achieving remote code execution on the dalfox host.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation results in unauthenticated remote code execution on the host running <code>dalfox server</code>. This grants the attacker full read access to secrets, configuration files, and credentials accessible to the dalfox process. The attacker can perform arbitrary file writes, enabling persistence, backdoor installation, and data exfiltration. The default <code>0.0.0.0</code> bind address exposes the server to all network interfaces, potentially including public-facing ones in misconfigured environments.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li><strong>Require API key:</strong> Enforce the use of <code>--api-key</code> in REST server mode by rejecting server startup if no API key is provided, as described in the remediation suggestion within the advisory.</li>
<li><strong>Strip <code>FoundAction</code> / <code>FoundActionShell</code>:</strong> Sanitize API-sourced requests by removing the <code>FoundAction</code> and <code>FoundActionShell</code> options in the <code>postScanHandler</code> to prevent untrusted callers from setting execution-control options.</li>
<li><strong>Deploy the Sigma rules:</strong> Deploy the provided Sigma rules to your SIEM and tune them for your environment to detect exploitation attempts.</li>
<li><strong>Upgrade Dalfox:</strong> Upgrade to a patched version of Dalfox that addresses CVE-2026-45087.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>rce</category><category>dalfox</category><category>cve-2026-45087</category></item></channel></rss>