ZeroHour

CVE-2026-38820

large

Unauthenticated shell command injection in openNDS captive portal

CVSS 3.1
8.3 high
EPSS
2%p76
Published
()
Modified
AI analysis

openNDS before 11.0.0, an open-source captive portal commonly deployed on OpenWrt routers and access points, passes the 'fas' query parameter of the /opennds_preauth/ endpoint through libopennds.sh without proper escaping, enabling shell command injection (CWE-78). An unauthenticated device attached to the portal's network can send a crafted preauth request containing shell metacharacters and achieve arbitrary OS command execution on the host running openNDS. Successful exploitation carries high confidentiality and integrity impact with limited availability impact (CVSS 3.1 8.3, adjacent attack vector), typically giving the attacker control of the router or hotspot at the privilege level of the openNDS process. All deployments running versions prior to 11.0.0 are affected; no public proof-of-concept is known, the flaw is not in CISA KEV, and EPSS estimates a 1.7% probability of exploitation within 30 days (76th percentile).

What to do: Upgrade openNDS to 11.0.0 or later on all captive-portal devices. As interim mitigation, limit reachability of the /opennds_preauth/ endpoint to the guest network segment and filter or validate the fas parameter (e.g., via device firewall rules), and audit OpenWrt deployments for openNDS packages running versions below 11.0.0.

Affected
openNDS project (OpenWrt community) openNDSall versions before 11.0.0
Estimated exposure
large≈10k–100k guest-Wi-Fi/hotspot devices (estimated; no published install counts in the data) — No install counts exist in the supplied data; openNDS is a widely used OpenWrt captive-portal package for public and guest Wi-Fi hotspots, so vulnerable deployments plausibly number in the tens of thousands of routers, though the true…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

openNDS before 11.0.0 is susceptible to unauthenticated OS command execution via shell command injection through the fas query parameter on the /opennds_preauth/ endpoint because of libopennds.sh.

Weakness
CWE-78
Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L

In the news

No ingested article mentions this CVE yet.