Skip to main content

OPNsense EUVDEUVD-2026-102115

| CVE-2026-58393 MEDIUM
Path Traversal (CWE-22)
2026-10-15 GitHub_M
5.9
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with Client Specific Override privileges
  2. Delivery
    Store path-traversal value in common_name
  3. Exploit
    Induce matching OpenVPN connect/auth event
  4. Execution
    openvpn_csc_conf_write concatenates path without basename
  5. Impact
    CSO config file written outside intended directory

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated user holding OPNsense OpenVPN Client Specific Override privileges, who stores a path-traversal sequence (e.g. ../) in the CSO common_name field - the exact unsanitized input consumed by openvpn_csc_conf_write() via the client_connect.php and user_pass_verify.php event handlers. The write does not occur until a matching OpenVPN client-connect or authentication event is processed with that common name/username, so the attacker must also cause such an event to fire. Key limiting factors: (1) operator-level privilege and access to CSO configuration are prerequisites; (2) the written payload is generated OpenVPN configuration content, not arbitrary attacker-controlled bytes, limiting what can be achieved by overwriting a target file; (3) the traversal only affects systems running the OpenVPN server with Client Specific Override entries prior to version 26.1.11.

Impact

This is a medium-severity (CVSS 5.9) path traversal (CWE-22) that the combined signals place well below genuine emergency priority. The CVSS vector CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L is network-reachable but gated by two meaningful brakes: AC:H and PR:L. PR:L is confirmed authenticated access, and the description sharpens this to a specific role - a user holding Client Specific Override privileges, which is an administrative/operator capability, not an ordinary low-privileged account. AC:H is justified because exploitation is not self-contained: the attacker must additionally cause a matching OpenVPN client-connect or authentication event (a client presenting the matching common name/username) before the malicious CSO file is written. No EPSS score was provided in the input, so exploitation probability cannot be quantified. KEV status is not listed (no active exploitation signal) and no POC/exploit code is referenced - no public exploit identified at time of analysis. The impact is further constrained by the vulnerability's own mechanics: the file written is generated OpenVPN configuration content, not attacker-controlled arbitrary bytes, which caps the realistic integrity damage well below what I:H alone would imply. Net assessment: a real but lower-tier issue - an authenticated, operator-privileged, multi-condition flaw in a single product rather than a widely-weaponizable remote bug. Note one tension worth flagging: the official I:H rating sits uneasily with the description's explicit statement that content is generated config rather than arbitrary bytes, which argues for a lower integrity impact - verify intended file-overwrite consequences against the vendor advisory GHSA-2m9v-p7r9-gfcw.

Exploit ScenarioDerived

An authenticated OPNsense operator with Client Specific Override privileges sets an OpenVPN CSO common_name containing path traversal sequences (e.g. ../../). When a VPN client subsequently connects or authenticates with a matching common name/username, openvpn_csc_conf_write() concatenates the unsanitized value into the target path and writes a generated OpenVPN config file outside /var/etc/openvpn-csc/<vpnid>/, potentially clobbering a file elsewhere on the FreeBSD host. No public exploit code is referenced, and the attacker must still engineer the matching connect/auth event, so this is a deliberate, privileged action rather than drive-by exploitation.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

A path traversal in OPNsense's OpenVPN Client Specific Override (CSO) handling allows an authenticated user holding CSO privileges to store a traversal sequence such as '../' in the common_name field, which openvpn_csc_conf_write() concatenates into the target path /var/etc/openvpn-csc/<vpnid>/<common_name> without normalization or a basename check; when a matching OpenVPN client-connect or authentication event is later processed by client_connect.php or user_pass_verify.php, a generated CSO configuration file is written outside the intended directory. Exploitation is constrained: the attacker must first have operator-level CSO access and must cause a matching common name or username to be processed, and the written content is generated OpenVPN configuration rather than arbitrary attacker-controlled bytes, which limits achievable impact - there is no public exploit identified at time of analysis. The issue is rated medium severity (vendor CVSS 5.9, independent assessment CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L) and is fixed in OPNsense 26.1.11.

RemediationAI

Vendor-released patch: upgrade to OPNsense 26.1.11, which applies basename() to the common_name when constructing the CSO target filename and tightens the model field to StrictTextField with a /[^\/]+/ mask (see the advisory at https://github.com/opnsense/core/security/advisories/GHSA-2m9v-p7r9-gfcw and commits 3af496143a19153c18b2f9458b2510d58aff2b98 and 6101b3e2c90482111f420a47775c14a447441a72). If immediate upgrade is not possible, the most effective compensating control is to restrict who holds OpenVPN Client Specific Override privileges, since the attack requires an authenticated user with CSO configuration access - audit and revoke that privilege from accounts that do not need it, with the trade-off that CSO administration becomes limited to a small set of administrators. As a second control, review existing CSO entries for common_name values containing '/' or '..' and remove or correct them so the traversal string cannot be stored, noting this is a manual, ongoing process rather than a durable fix. Additionally, monitor /var/etc/openvpn-csc/ and its parent directories for unexpected file creation and watch OpenVPN client-connect/auth events whose common name or username contains path components, since these are the events that trigger the write; detection logging does not block the write itself and should be treated as a compensating detection measure rather than prevention.

Affected VersionsENISA

core < 26.1.11

Affected Packages

euvd core fix: 26.1.11

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

OPNsense is a FreeBSD-based firewall and routing platform, and the affected component is its OpenVPN server integration written in PHP, tracked under the CPE cpe:2.3:a:opnsense:core:*:*:*:*:*:*:*:* (the OPNsense core package, tags PHP, Path Traversal, Core). The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory): the CSO 'common_name' model field in src/opnsense/mvc/app/models/OPNsense/OpenVPN/OpenVPN.xml was a plain TextField with no character masking, and openvpn_csc_conf_write() in src/etc/inc/plugins.inc.d/openvpn.inc built the destination filename by direct string concatenation as '/var/etc/openvpn-csc/' . $vpnid . '/' . $settings['common_name']. Because the VPN ID was sanitized with FILTER_SANITIZE_NUMBER_INT but the common name was not passed through basename() or any normalization, embedded '../' sequences escaped the per-instance CSO directory. The write is triggered lazily by the OpenVPN event handlers client_connect.php and user_pass_verify.php, which invoke the CSO configuration writer when a connecting client's common name or authenticating username matches the stored override entry. The upstream fix applies basename() to the common name, converts the model field to StrictTextField with AllowSpaces and a /[^\/]+/ mask that rejects slashes, closing the traversal vector at both the input-validation and file-write layers.

Know when Opnsense gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.9 MEDIUM
AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L
vuln.today AI 4.2 MEDIUM

Authenticated CSO operator (PR:L) and a required matching connect/auth event (AC:H); integrity lowered to I:L because written content is generated config, not arbitrary bytes, with no confidentiality loss.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L
4.0 AV:N/AC:H/AT:P/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
Low

Lifecycle Timeline

1
Patch available
Oct 15, 2026 - 16:02 EUVD

DescriptionCVE.org

OPNsense is a FreeBSD based firewall and routing platform. Prior to version 26.1.11, the OpenVPN Client Specific Override common_name field accepts path traversal sequences and openvpn_csc_conf_write() concatenates the value into /var/etc/openvpn-csc/<vpnid>/<common_name> without normalization or a basename check. The affected event handlers are client_connect.php and user_pass_verify.php. An authenticated user with Client Specific Override privileges can store the traversal value, and a matching OpenVPN client-connect or authentication event causes a generated CSO file to be written outside the intended directory. The file content is generated OpenVPN configuration rather than arbitrary bytes, and practical exploitation requires the attacker to cause a matching common name or username to be processed. This issue is fixed in version 26.1.11.

Threat Intelligence Overview

EPSS Score
0.4%
Top 64% exploitable
Prevalence
Medium
popular open-source FreeBSD firewall, common but not ubiquitous enterprise footprint
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

CVE-2023-39004 CRITICAL POC
9.8 Aug 09

Insecure permissions in the configuration directory (/conf/) of OPNsense Community Edition before 23.7 and Business Edit

CVE-2023-27152 CRITICAL POC
9.8 Oct 23

DECISO OPNsense 23.1 does not impose rate limits for authentication, allowing attackers to perform a brute-force attack

CVE-2023-39008 CRITICAL POC
9.8 Aug 09

A command injection vulnerability in the component /api/cron/settings/setJob/ of OPNsense Community Edition before 23.7

CVE-2023-39001 CRITICAL POC
9.8 Aug 09

A command injection vulnerability in the component diag_backup.php of OPNsense Community Edition before 23.7 and Busines

CVE-2023-39007 CRITICAL POC
9.6 Aug 09

/ui/cron/item/open in the Cron component of OPNsense Community Edition before 23.7 and Business Edition before 23.4.2 al

CVE-2023-39003 HIGH POC
7.5 Aug 09

OPNsense Community Edition before 23.7 and Business Edition before 23.4.2 was discovered to contain insecure permissions

CVE-2023-39005 HIGH POC
7.5 Aug 09

Insecure permissions exist for configd.socket in OPNsense Community Edition before 23.7 and Business Edition before 23.4

CVE-2023-38997 HIGH POC
7.2 Aug 09

A directory traversal vulnerability in the Captive Portal templates of OPNsense Community Edition before 23.7 and Busine

CVE-2023-38999 MEDIUM POC
6.5 Aug 09

A Cross-Site Request Forgery (CSRF) in the System Halt API (/system/halt) of OPNsense Community Edition before 23.7 and

CVE-2019-25373 MEDIUM POC
6.4 Feb 15

OPNsense 19.1 contains a stored cross-site scripting vulnerability that allows authenticated attackers to inject malicio

CVE-2019-25369 MEDIUM POC
6.4 Feb 15

OPNsense 19.1 contains a stored cross-site scripting vulnerability in the system_advanced_sysctl.php endpoint that allow

CVE-2019-25372 MEDIUM POC
6.1 Feb 15

OPNsense 19.1 contains a reflected cross-site scripting vulnerability that allows unauthenticated attackers to inject ma

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy