Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-45090

CVE-2026-45090: Dalfox XSS Scanner DoS Vulnerability

CVE-2026-45090 is a denial-of-service vulnerability in Dalfox XSS scanner caused by writing to a closed channel. Attackers can crash the process remotely in server mode. This article covers technical details, affected versions, impact, and mitigation steps.

Published:

CVE-2026-45090 Overview

CVE-2026-45090 is a race condition vulnerability in Dalfox, an open-source Cross-Site Scripting (XSS) scanner and automation utility. The flaw resides in ParameterAnalysis within pkg/scanning/parameterAnalysis.go, where two sequential worker stages write to the same results channel. The first stage closes the channel, but the second stage continues sending to it, triggering a Go runtime panic that crashes the entire dalfox process. The vulnerability affects versions prior to 2.13.0 and is fixed in 2.13.0.

Critical Impact

In server mode, unauthenticated remote attackers can crash the Dalfox process by submitting a request with a populated data field against any target that reflects at least one parameter.

Affected Products

  • Dalfox versions prior to 2.13.0
  • Dalfox server mode REST API with default configuration (no API key)
  • Any deployment exposing ParameterAnalysis with POST-body parameters enabled

Discovery Timeline

  • 2026-05-27 - CVE CVE-2026-45090 published to NVD
  • 2026-05-27 - Last updated in NVD database

Technical Details for CVE-2026-45090

Vulnerability Analysis

The vulnerability is a classic Go concurrency error categorized under [CWE-362] (Concurrent Execution using Shared Resource with Improper Synchronization). Dalfox's ParameterAnalysis function orchestrates two sequential worker stages that share a single results channel for output. After the first stage finishes processing query parameters, the code executes close(results) at line 438. The second stage, which handles POST-body parameters (dp), then launches with the same already-closed channel as its sink. When processParams detects a reflected parameter, it performs results <- paramResult on the closed channel. Sending on a closed channel is an unrecoverable runtime panic in Go, terminating the process immediately.

Root Cause

The root cause is improper channel lifecycle management across worker stages. The developer closed the shared channel after the first stage instead of deferring closure until all producers had finished writing. The second stage inherits an unusable channel reference, but the panic only manifests when reflection logic actually attempts a send, making the bug intermittent during normal scans.

Attack Vector

In server mode, Dalfox exposes a REST API that, by default, requires no API key. Any unauthenticated network-reachable caller can trigger the panic by submitting a scan request where options.Data is non-empty and the target reflects at least one parameter. Because the panic crashes the entire dalfox process, a single request can take down the scanner instance, denying service to all legitimate users until the process is restarted.

No verified proof-of-concept code is available. See the GitHub Security Advisory GHSA-2g4x-fq3j-cgq4 for upstream technical details.

Detection Methods for CVE-2026-45090

Indicators of Compromise

  • Unexpected termination of the dalfox server process with a Go runtime panic stack trace referencing send on closed channel
  • Stack traces pointing to pkg/scanning/parameterAnalysis.go and processParams
  • Repeated REST API requests containing a populated data field against reflective targets

Detection Strategies

  • Monitor dalfox process exit codes and restart frequency in deployments running server mode
  • Inspect REST API access logs for unauthenticated POST requests carrying scan options with non-empty data fields
  • Correlate process crashes with inbound API traffic timestamps to identify triggering requests

Monitoring Recommendations

  • Enable structured logging on the Dalfox REST API and forward to a centralized log platform
  • Alert on Go panic signatures containing send on closed channel in container or systemd journal output
  • Track availability of the Dalfox endpoint with synthetic health checks to detect outages early

How to Mitigate CVE-2026-45090

Immediate Actions Required

  • Upgrade Dalfox to version 2.13.0 or later, which contains the fix for the channel lifecycle issue
  • Restrict network exposure of the Dalfox REST API to trusted internal hosts only
  • Enable API key authentication on any Dalfox server-mode deployment that must remain reachable

Patch Information

The vulnerability is resolved in Dalfox 2.13.0. The fix corrects the channel close sequencing so that the shared results channel is no longer closed before the POST-body parameter worker stage completes its sends. Refer to the GitHub DalFox Release v2.13.0 notes for upgrade instructions.

Workarounds

  • Run Dalfox only in command-line mode and avoid server mode until the upgrade is applied
  • Place the Dalfox REST API behind a reverse proxy enforcing authentication and rate limits
  • Reject inbound API requests where the data field is populated by unauthenticated clients

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.