Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as OpenVPN client with crafted cert CN/username
-
ExploitEmbed shell metacharacters in common name
-
ExecutionScript interpolates value unquoted into su -c
-
ImpactExecute arbitrary commands as unbound user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires three specific conditions drawn from the description: (1) the attacker must be able to authenticate as an OpenVPN client, i.e. possess a valid certificate or credentials accepted by the server; (2) the 'DNS Resolver (unbound) client registration' feature must be enabled, which is a non-default configuration; and (3) the attacker must control the certificate common name or the username so shell metacharacters can be injected into the unquoted 'su -c' string in openvpn.learn-address.sh. Limiting factors that reduce realistic risk: valid VPN authentication is mandatory (PR:L), the non-default client-registration setting must be active, attack complexity is high (AC:H) with a present attack requirement (AT:P), the vulnerability exists only in pfSense CE 2.5.0 through 2.9.0, and resulting command execution is confined to the low-privilege 'unbound' user rather than root. |
| Impact | This is a genuine but low-priority issue, and the signals are internally consistent rather than conflicting. The vendor-supplied CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:L/VC:L/VI:L/VA:L) yields a base score of only 2.3: although the attack is network-reachable, it requires an authenticated VPN client (PR:L), carries high attack complexity (AC:H) plus a present attack requirement (AT:P), and the technical impact is low across confidentiality, integrity, and availability because injected commands run as the limited 'unbound' user rather than root. Publicly available exploit code exists (GitHub PoC plus a VulnCheck advisory), which raises the practical likelihood of opportunistic use, but there is no CISA KEV listing and no EPSS score was provided, so there is no evidence of widespread or automated exploitation - treat the PoC as a capability signal, not confirmation of active exploitation. Net assessment: a real, PoC-backed flaw whose preconditions (valid VPN credentials, a non-default DNS Resolver client-registration setting, and attacker-controlled certificate CN/username) and low-privilege execution context keep real-world risk modest and targeted; it is most meaningful as a potential link in a privilege-escalation chain rather than as a standalone high-impact bug. |
| Exploit ScenarioDerived | An attacker who already holds valid OpenVPN client credentials on a pfSense CE instance (2.5.0-2.9.0) with DNS Resolver client registration enabled connects using a certificate common name or username containing shell metacharacters. When the openvpn.learn-address.sh script interpolates that value unquoted into an 'su -c' string, the embedded commands execute as the unbound user. Public exploit code for this technique is available, though the high complexity and required authentication limit casual mass exploitation. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
OS command injection in Netgate pfSense CE 2.5.0 through 2.9.0 allows an authenticated OpenVPN client to run arbitrary shell commands as the low-privileged 'unbound' user by embedding shell metacharacters in the certificate common name or username that openvpn.learn-address.sh interpolates unquoted into a 'su -c' string. Exploitation requires three conditions to line up: valid VPN authentication (the CVSS vector is PR:L, so authenticated), the non-default 'DNS Resolver (unbound) client registration' feature enabled, and attacker-controlled CN or username - which is why the assessed severity is low (CVSS 2.3 in the v4 vector supplied; equivalent CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L per independent assessment). Publicly available exploit code exists; there is no confirmation of active exploitation (not in CISA KEV) and impact is confined to the unbound user rather than root, so this is a genuine but low-priority issue.
RemediationAI
Patch status is not confirmed in the available data: no vendor-released patch version is identified at time of analysis, so treat the upstream code change and any Netgate pfSense CE release notes as the authoritative source before upgrading - track the pfSense repository commit referenced at https://github.com/pfsense/pfsense/blob/9363ac5b8651a1c7a333180425ce7719070f95f9/src/usr/local/sbin/openvpn.learn-address.sh#L57-L62 and the VulnCheck advisory (https://www.vulncheck.com/advisories/netgate-pfsense-ce-2.5.0-through-2.9.0-os-command-injection-via-openvpn-learn-address-sh) for a fixed CE build. Until a patched release is applied, the single most effective workaround is to disable DNS Resolver (unbound) client registration in pfSense, which removes the vulnerable code path entirely; the trade-off is that VPN clients will no longer be auto-registered in unbound and DNS resolution for those clients may need to be handled manually or via a different resolver configuration. As a second layer, enforce strict character allow-lists on OpenVPN certificate common names and usernames (rejecting shell metacharacters such as ;, |, &, $, backticks and newlines) and avoid issuing certificates whose CNs are attacker-controlled; this constrains the injection primitive but depends on CA/issuance discipline and does not fix the underlying quoting bug. Note that the executed commands run as the low-privilege unbound user, so restricting the unbound account's filesystem and network reachability limits post-exploitation impact but does not prevent the injection itself; blocking VPN access from untrusted clients is a last resort that costs legitimate remote-access functionality. Because public exploit code exists, prioritise these compensating controls only if your deployment has the non-default registration feature enabled.
Affected VersionsENISA
Affected Packages
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
The flaw is a classic OS command injection (CWE-78) in the OpenVPN helper script openvpn.learn-address.sh shipped with pfSense CE. OpenVPN invokes its learn-address hook as clients connect or disconnect, passing client identity data; when the DNS Resolver (unbound) client-registration option is enabled, pfSense uses that script to register VPN clients with the unbound resolver, and the certificate common name or username is substituted unquoted into a 'su -c' command string (see the referenced source lines in src/usr/local/sbin/openvpn.learn-address.sh). Because the value is not shell-quoted, characters such as backticks, semicolons, or command substitutions are interpreted by the shell. The command runs under the 'unbound' service account via su, not root, which caps the blast radius, and the affected CPE is cpe:2.3:a:netgate:pfsense_ce:*:*:*:*:*:*:*:* covering the CE 2.5.0-2.9.0 range. The vulnerability is only reachable in the non-default configuration where unbound client registration is turned on and the attacker both holds valid VPN credentials and controls the identity string that lands in the script.
Know when Pfsense Ce 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
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Network-reachable but needs valid VPN auth (PR:L) and a non-default DNS Resolver setting plus crafted input (AC:H); execution as the low-privilege unbound user yields low C/I/A and unchanged scope.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Netgate pfSense CE 2.5.0 through 2.9.0 contains an OS command injection vulnerability in openvpn.learn-address.sh that allows authenticated VPN clients to execute commands as the unbound user. Attackers can embed shell metacharacters in the certificate common name or username, which is interpolated unquoted into su -c strings, when DNS Resolver client registration is enabled.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
More in Pfsense Ce
View allThe SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot
OS command injection in Netgate pfSense CE 2.7.0 through 2.9.0 allows an authenticated web-interface user who holds the
Command injection in pfSense CE 2.7.0 through 2.9.0 allows authenticated users who hold only the Captive Portal HA privi
Authenticated VPN users can execute arbitrary commands as root on pfSense CE through 2.9.0 by exploiting an OS command i
PHP code execution on Netgate pfSense Plus and pfSense CE firewalls can be achieved by an authenticated, highly privileg
Authorization bypass in Netgate pfSense CE through 2.9.0 allows an authenticated WebGUI account that holds page privileg
Command injection in Netgate pfSense CE 2.4.5 through 2.9.0 lets an authenticated WebGUI user holding the Advanced Admin
Command injection in Netgate pfSense CE 2.7.0 through 2.9.0 lets an authenticated administrator who holds IPsec Mobile c
Root command execution on pfSense CE through 2.9.0 is achievable by authenticated attackers holding the 'WebCfg - Interf
OS command injection in Netgate pfSense CE 2.7.0 through 2.9.0 lets an authenticated web GUI user who holds the Traffic
Command injection in Netgate pfSense CE through 2.9.0 allows an authenticated user with Virtual IP (CARP) edit privilege
OS command injection in Netgate pfSense CE (through 2.9.0) allows remote attackers holding an authenticated web-GUI acco
EUVD-2026-102337
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB