Skip to content
eastbaycyber

CVE-2026-45087: Dalfox REST API RCE

In CISA KEV
No
Published
Nov 6
Patch SLA & TriageVector: Network
14 to 30 days

Standard scheduled maintenance window.

Exposure:
Control:
CVSS v3.1 Blast RadiusScore: N/A
Decode Vector & Sub-Scores →
CVE explainers 8 min read
Security Research Desk Source-checked
Auto-checked against the official CVE record · Human-reviewed after publishing · Updated 2026-11-06
▲ Escalation ViewOne CVE, briefed at three altitudes — skim the Brief, weigh the Impact, or work the Runbook. The way a SOC actually reads it.
CISOBrief · 30-second brief

TL;DR - CVE-2026-45087 is a critical unauthenticated remote command-execution flaw in Dalfox REST API server mode. - Dalfox versions before 2.13.0 are affected, especially exposed instances listening on 0.0.0.0:6664. - Upgrade to Dalfox 2.13.0 or later, disable exposed servers, restrict TCP/6664, and investigate suspicious child processes.

AnalystImpact · assess the risk

What Happened?

CVE-2026-45087 affects Dalfox, the open-source XSS scanning tool maintained in the hahwul/dalfox project. The vulnerability appears when Dalfox runs in REST API server mode using dalfox server.

In affected versions, an unauthenticated caller who can reach the API can submit attacker-controlled scan options, including fields that influence shell-command execution. The result is potential arbitrary command execution with the privileges of the Dalfox process.

Field Details
CVE ID CVE-2026-45087
Product Dalfox
Affected versions Versions before 2.13.0
Fixed version 2.13.0
CVSS v3 base score 10.0 Critical
CVSS vector Not exposed in the supplied NVD record
Attack vector Network
Authentication required No, unless API-key authentication is explicitly configured
Privileges required None
User interaction Not indicated as required
Patch available Yes
Default listener 0.0.0.0:6664
CISA KEV status Not listed

The issue is particularly serious because Dalfox server mode binds to all interfaces by default, while API-key authentication remains disabled unless the operator supplies --api-key.

Before investigating this vulnerability, security teams should also review their broader access controls, including privileged access workstation practices and network segmentation.

Analyst’s Take: Treat reachable REST API instances as the first remediation target, but do not stop there. The command executes with Dalfox’s process privileges, so every affected installation still requires an upgrade even when port 6664 is not exposed.

What’s the Root Cause?

The root cause is inadequate trust-boundary enforcement in the REST API request-handling and option-initialization paths.

The POST /scan endpoint deserializes attacker-controlled JSON directly into model.Options. That structure includes FoundAction and FoundActionShell, fields capable of influencing commands executed after a scan finding is identified.

Dalfox initialization then propagates those values into the effective scan configuration without removing, validating, or otherwise restricting the security-sensitive fields. The API therefore treats execution-related options supplied by an untrusted caller as trusted operator configuration.

Several deployment choices amplify the impact:

  • The service listens to 0.0.0.0:6664 by default.
  • Authentication is optional rather than mandatory.
  • The API accepts attacker-controlled scan options.
  • A command may execute when a scan finding triggers the relevant action path.

These conditions make the vulnerable path remotely accessible without credentials whenever the port is exposed through a firewall, cloud security group, container mapping, reverse proxy, or internal network route.

Who Needs to Act?

Organizations need to act if they run Dalfox in REST API server mode on any version before 2.13.0. Exposure is highest where TCP port 6664 is reachable from the internet, a broad corporate network, a shared security-testing environment, or an untrusted container or workload network.

Product or deployment Affected range Fixed release Required action
Dalfox REST API server < 2.13.0 2.13.0 Upgrade immediately or stop the server
Dalfox server mode on the default port < 2.13.0 2.13.0 Restrict TCP/6664 and upgrade
Dalfox with explicit --api-key < 2.13.0 2.13.0 Upgrade; authentication reduces exposure but does not fix the code flaw
Dalfox command-line-only deployments < 2.13.0 2.13.0 Confirm server mode is disabled; upgrade as a precaution

Inventory should include:

  • Standalone binaries
  • Docker images
  • Kubernetes workloads
  • CI runners
  • Penetration-testing jump hosts
  • Developer workstations
  • Supervisor- or wrapper-managed processes

Pay particular attention to systems where Dalfox is launched by a service manager or wrapper, because the externally exposed API may not be obvious from the process command line.

Why Is the CVSS Score Critical?

The supplied CVSS v3 base score is 10.0 Critical. The available NVD response did not expose the complete vector string, so individual metric values should not be presented as an authoritative published vector.

The vulnerability description supports the principal severity characteristics:

  • Network reachability
  • No required authentication
  • No stated privileges
  • Remote command execution
  • Potential impact to confidentiality, integrity, and availability

An attacker only needs network connectivity to the Dalfox REST API and the ability to submit a request. In the default configuration, the service listens on all interfaces and does not require an API key.

The resulting command runs with the privileges of the Dalfox process. If that process has excessive permissions or access to sensitive credentials, the vulnerability can lead to complete host compromise.

CVSS is not an exposure measurement. A private Dalfox server with strict firewall rules may have lower operational risk than an internet-facing instance, while both retain the same underlying vulnerability. Prioritize exposed services first, then remediate every affected installation that can be identified.

Has CVE-2026-45087 Been Exploited?

The available evidence does not confirm exploitation in the wild. CVE-2026-45087 was not listed in the queried CISA Known Exploited Vulnerabilities catalog, and no confirmed ransomware campaign was indicated.

A GitHub security advisory is referenced for the issue, but the retrieved material did not expose a verified public exploit or proof of concept. The defensible status is therefore:

  • No verified public PoC was established from the supplied evidence.
  • Active exploitation has not been confirmed by the referenced NVD or CISA data.
  • The vulnerable request path remains technically straightforward to abuse where the API is reachable.

The absence of a published PoC or KEV listing should not delay remediation.

ResponderRunbook · act now

Detection Guidance

Start by identifying Dalfox processes running in server mode and determining whether TCP port 6664 is reachable beyond the local host.

Review:

  • Process supervisors
  • Container manifests
  • Kubernetes Services
  • Cloud security groups
  • Reverse-proxy routes
  • Host firewall rules
  • Network access-control lists

The default listener address is 0.0.0.0:6664, but a non-default port does not establish safety.

Look for HTTP requests to the Dalfox API, especially POST /scan, and inspect request bodies where application logging or a reverse proxy preserves JSON payloads. Suspicious requests may include:

  • FoundAction or FoundActionShell values
  • Shell metacharacters
  • Command interpreters
  • Encoded commands
  • Scan targets not authorized by the operator

Technical Notes

A basic host-triage workflow can identify listening services and parent-child process relationships:

ss -lntp | grep -E '(:6664|dalfox)'
ps -eo pid,ppid,user,etimes,args --forest | grep -i '[d]alfox'

If Dalfox runs under Docker or Kubernetes, inspect published ports and service exposure:

docker ps --format 'table {{.Names}}\t{{.Image}}\t{{.Ports}}\t{{.Command}}' | grep -i dalfox
kubectl get pods,svc -A -o wide | grep -i dalfox

A focused web-log search should cover the vulnerable endpoint and execution-option names:

grep -R -Ei \
  '"(POST|post) /scan|FoundAction(Shell)?|/scan[^"]*' \
  /var/log/nginx /var/log/apache2 /var/log 2>/dev/null

For network monitoring, alert on connections to the Dalfox listener and unexpected outbound connections from the Dalfox process:

(dst_port == 6664) OR
(process_name == "dalfox" AND outbound_connection == true)

This is not a complete exploit signature. A request may trigger execution only after a scan finding, and command output may be sent through a separate channel.

Correlate API requests with process-creation events, including shells and interpreters:

parent_process in ("dalfox", "dalfox.exe") AND
child_process in ("sh", "bash", "dash", "ash", "cmd.exe", "powershell.exe", "pwsh")

Investigate:

  • Commands launched by the Dalfox account
  • Unexpected files near the binary or working directory
  • Outbound connections following /scan requests
  • Access to cloud metadata services
  • Access to credential files
  • New users or persistence mechanisms
  • Modified service or scheduled-task files

Remediation and Patching

Upgrade all affected installations to Dalfox 2.13.0 or later. Verify the installed version after upgrading and confirm that the deployed binary or container image, rather than only a build workstation, has changed.

For a source or Go-based installation, use the project’s release tag and rebuild or install the fixed version according to the project’s supported procedure:

go install github.com/hahwul/dalfox/v2@v2.13.0
dalfox version

If the deployment uses a packaged binary or container, replace it with an artifact corresponding to Dalfox 2.13.0 or later. Verify the image digest or binary provenance through the organization’s normal release-validation process.

Immediate Mitigations

If immediate upgrade is not possible, stop REST API server instances and block the listener at host and network boundaries:

sudo systemctl stop dalfox
sudo nft add rule inet filter input tcp dport 6664 drop

For environments using UFW, an equivalent emergency control is:

sudo ufw deny 6664/tcp

Firewall syntax varies by platform. Validate the effective rules and confirm that the port is no longer reachable from unauthorized networks.

Do not rely only on binding changes unless the deployment has been explicitly configured and tested to listen on a trusted local or private interface.

If the service must remain available temporarily:

  1. Configure API-key authentication with the supported --api-key option.
  2. Place the service behind an authenticated, access-controlled network path.
  3. Restrict access to approved administration or automation systems.
  4. Monitor API requests and process creation closely.
  5. Upgrade as soon as possible.

Authentication and network restrictions are defense-in-depth measures, not substitutes for upgrading.

Incident Response Considerations

After containment, review historical API and reverse-proxy logs for /scan requests and attacker-controlled FoundAction or FoundActionShell values.

Examine affected hosts for:

  • Shells and interpreters launched by Dalfox
  • Download utilities and encoded commands
  • Unexpected persistence
  • New users
  • Modified service files
  • Credential access
  • Outbound connections
  • Cloud metadata access
  • Unauthorized changes to scan targets or configurations

If unauthorized command execution is suspected:

  1. Isolate the host.
  2. Preserve volatile and disk evidence.
  3. Rotate credentials available to the Dalfox process.
  4. Review lateral movement and cloud activity.
  5. Follow the organization’s incident-response procedures.

For additional context when evaluating suspicious account activity, see how to tell if an email has been hacked. While email compromise is not required for exploitation of this vulnerability, stolen credentials discovered during investigation may indicate broader intrusion activity.

References

  1. NVD: CVE-2026-45087
  2. Dalfox 2.13.0 release
  3. GitHub Security Advisory: GHSA-v25v-m36w-jp4h
  4. CISA Known Exploited Vulnerabilities Catalog

The available references support treating CVE-2026-45087 as a critical vulnerability in Dalfox REST API server deployments, with a fixed version of 2.13.0. They do not establish confirmed exploitation in the wild or a verified public PoC. Organizations should use their own telemetry and incident-response evidence to determine whether a reachable instance was targeted.

This article may contain affiliate links. We earn a commission on qualifying purchases at no extra cost to you.

Last verified: 2026-11-06

Disclaimer: This article may contain affiliate links. We earn a commission on qualifying purchases at no extra cost to you.