Description
OPNsense is a FreeBSD based firewall and routing platform. Prior to version 26.1.11, the OpenVPN connection-status dashboard widget in src/opnsense/www/js/widgets/OpenVPNClients.js and the connection-status view place a client common_name into data-common-name attributes without quote-safe encoding. Exploitation requires an OpenVPN server configured with username-as-common-name and RADIUS or LDAP authentication, plus the ability to provision or self-register a valid backend username containing a double quote; deployments where the same administrator controls both the identity backend and firewall do not cross a separate trust boundary. An authenticated client using that username can close the attribute and add an event handler, while the local user database is not affected because its username validator rejects quotes. Script executes in an administrator's session when the administrator opens the dashboard or connection-status page and the injected event is triggered; the demonstrated payload used pointer movement over the client row rather than unconditional page-load execution. The advisory demonstrates that the script can read config.xml, invoke privileged APIs, reset the root password, and obtain root command execution. This issue is fixed in version 26.1.11.
Published: 2026-10-15
Score: 8 High
EPSS: < 1% Very Low
KEV: No
Impact: Remote Code Execution
Action: Patch Immediately
AI Analysis

Impact

Stored cross‑site scripting occurs in the OpenVPN connection‑status dashboard widget and view when a client common_name containing an unescaped double quote is rendered into the data-common-name attribute. An attacker who can create such a username, while the VPN server is configured for username‑as‑common‑name with RADIUS or LDAP, can terminate the attribute and attach an event handler. When an administrator opens the dashboard or the connection‑status page the injected script runs in the administrator’s browser session. The presented payload was able to read the configuration file, call privileged APIs, reset the root password, and execute arbitrary commands as root. This demonstrates full control of the host.

Affected Systems

All installations of OPNsense core prior to version 26.1.11 are affected. The vulnerability exists in the widget located in src/opnsense/www/js/widgets/OpenVPNClients.js and the corresponding connection‑status view. Any deployment that uses an OpenVPN server configured with username‑as‑common‑name and allows self‑registration of usernames with double quotes is vulnerable.

Risk and Exploitability

The CVSS score of 8 indicates a high severity flaw. The EPSS score of <1% suggests that the probability of exploitation in the wild is low, and the vulnerability is not yet listed in the CISA KEV catalog. However, exploitation is possible only when an attacker can register a malicious OpenVPN username; it requires an OpenVPN server using username‑as‑common‑name and RADIUS/LDAP authentication, and an administrator who will open the relevant page. Once triggered, the flaw provides full root‑level access to the firewall host.

Generated by OpenCVE AI on October 16, 2026 at 20:29 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to OPNsense 26.1.11 or later.
  • If an upgrade is not feasible, disable the OpenVPN username‑as‑common‑name configuration or enforce strict username validation that rejects double quotes.
  • Ensure that the OpenVPN server and the firewall admin share different trust boundaries so that the administrator cannot configure or self‑register malicious usernames.

Generated by OpenCVE AI on October 16, 2026 at 20:29 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 15 Oct 2026 15:45:00 +0000

Type Values Removed Values Added
Description OPNsense is a FreeBSD based firewall and routing platform. Prior to version 26.1.11, the OpenVPN connection-status dashboard widget in src/opnsense/www/js/widgets/OpenVPNClients.js and the connection-status view place a client common_name into data-common-name attributes without quote-safe encoding. Exploitation requires an OpenVPN server configured with username-as-common-name and RADIUS or LDAP authentication, plus the ability to provision or self-register a valid backend username containing a double quote; deployments where the same administrator controls both the identity backend and firewall do not cross a separate trust boundary. An authenticated client using that username can close the attribute and add an event handler, while the local user database is not affected because its username validator rejects quotes. Script executes in an administrator's session when the administrator opens the dashboard or connection-status page and the injected event is triggered; the demonstrated payload used pointer movement over the client row rather than unconditional page-load execution. The advisory demonstrates that the script can read config.xml, invoke privileged APIs, reset the root password, and obtain root command execution. This issue is fixed in version 26.1.11.
Title OPNsense: Stored XSS to root RCE via OpenVPN client common_name in status views
Weaknesses CWE-79
References
Metrics cvssV3_1

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-15T15:21:09.883Z

Reserved: 2026-06-30T18:19:58.377Z

Link: CVE-2026-58390

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-10-15T16:18:17.890

Modified: 2026-10-15T21:08:49.703

Link: CVE-2026-58390

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-16T20:30:06Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')