Description
In openNDS before 11.0.0, the client_params.sh script, invoked by the openNDS daemon to serve the authenticated client status page, is vulnerable to OS command injection through crafted HTTP GET query parameter keys. An authenticated captive portal user can inject arbitrary shell commands by embedding semicolons in a URL query parameter name.
Published: 2026-08-28
Score: 7.6 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The client_params.sh script used by the openNDS daemon to display the authenticated client status page fails to validate query parameter names passed via HTTP GET requests. As a result, an attacker controlling a captive portal user account can inject arbitrary shell commands by inserting semicolons into the parameter key of the URL. The injected commands execute with the privileges of the openNDS process, allowing attackers to read, modify, or delete files, or alter system configuration, constituting a remote code execution vulnerability.

Affected Systems

The flaw exists in openNDS versions prior to 11.0.0. Any installation of the openNDS daemon that renders the client status page, such as deployments on routers or access points running openNDS openNDS, is potentially affected. The identified product is openNDS from the openNDS project, last known affected revision before 11.0.0. No specific sub-product or minor version is mentioned beyond the major 11.0.0 boundary.

Risk and Exploitability

The CVSS score of 7.6 classifies this flaw as high severity, and the lack of an EPSS entry indicates no current exploitation data is available. It is not listed in the CISA KEV catalog. Because the vulnerability requires an authenticated captive portal user, the attack surface is limited to legitimate users of the captive portal, but once authenticated, an attacker can execute arbitrary commands on the host system. The lack of a publicly disclosed exploit and the requirement for user authentication reduce the likelihood of widespread exploitation, yet the potential impact is significant.

Generated by OpenCVE AI on August 28, 2026 at 06:38 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to openNDS 11.0.0 or later where the client_params.sh script validation is fixed.
  • If upgrading immediately is not possible, restrict the permissions of the openNDS user and the client_params.sh script to the minimal set needed to run the daemon, preventing system-wide changes.
  • Implement input sanitization for all URL query parameters on the captive portal by filtering or rejecting unexpected characters such as semicolons before passing them to shell scripts.

Generated by OpenCVE AI on August 28, 2026 at 06:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 28 Aug 2026 07:00:00 +0000

Type Values Removed Values Added
Title OS Command Injection via HTTP GET Parameter Name in openNDS Client Status Page

Thu, 27 Aug 2026 18:00:00 +0000

Type Values Removed Values Added
Description In openNDS before 11.0.0, the client_params.sh script, invoked by the openNDS daemon to serve the authenticated client status page, is vulnerable to OS command injection through crafted HTTP GET query parameter keys. An authenticated captive portal user can inject arbitrary shell commands by embedding semicolons in a URL query parameter name.
First Time appeared Opennds
Opennds opennds
Weaknesses CWE-78
CPEs cpe:2.3:a:opennds:opennds:*:*:*:*:*:*:*:*
Vendors & Products Opennds
Opennds opennds
References
Metrics cvssV3_1

{'score': 7.6, 'vector': 'CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L'}


cve-icon MITRE

Status: PUBLISHED

Assigner: mitre

Published:

Updated: 2026-08-28T00:12:08.428Z

Reserved: 2026-04-06T10:01:05.608Z

Link: CVE-2026-38822

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-28T02:16:21.620

Modified: 2026-08-28T02:16:21.620

Link: CVE-2026-38822

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T06:45:04Z

Weaknesses
  • CWE-78

    Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')