Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to OpenVPN via RADIUS/LDAP
-
DeliverySupply username with shell metacharacters
-
ExploitBreak out of eval'd pfctl anchor name
-
ExecutionCommands run as root on firewall
-
ImpactFull firewall compromise
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: (1) a valid VPN account authenticated through a RADIUS or LDAP backend (PR:L - the attacker must control their own username value), and (2) the pfSense OpenVPN server must invoke the openvpn.connect_async.sh connect/disconnect script that eval's the pfctl anchor name. The injection is delivered via a username containing single quotes and shell metacharacters that break out of the eval'd string. Limiting factors that reduce real-world exposure: valid credentials are mandatory (not unauthenticated), the specific OpenVPN connect-script and external-auth (RADIUS/LDAP) configuration must be in use (reflected as AT:P/AC:H), and only pfSense CE through 2.9.0 is affected. |
| Impact | This is a credible high-priority issue for any pfSense CE deployment that uses OpenVPN with external authentication. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:L/UI:N) describes a network-reachable flaw requiring low privileges and a present attack requirement, with full confidentiality, integrity and availability impact on the vulnerable system (VC:H/VI:H/VA:H) - consistent with the description's claim of command execution as root. The real escalation value is high because a low-privileged VPN user gains root on the firewall itself. A public exploit exists (abraxas/pfsense-ovpn-connect-eval) and the finding was reported by VulnCheck, which raises practical exploitability above a theoretical issue. Tempering factors: AC:H plus AT:P indicate this is NOT trivially universal - it depends on a specific deployment (OpenVPN using the connect/disconnect script with RADIUS or LDAP auth), and PR:L means the attacker needs valid VPN credentials. No CISA KEV listing and no EPSS score were provided in the input, so there is NO evidence of active in-the-wild exploitation at this time - the POC indicates capability, not observed attacks. Net: real priority for affected configurations (public POC + root impact + exposed VPN endpoints), but not a drop-everything mass-exploitation event absent KEV/EPSS signals. |
| Exploit ScenarioDerived | An attacker with valid but low-privileged VPN credentials (e.g., a legitimate RADIUS/LDAP user, or a compromised account) connects to the pfSense OpenVPN server using a username containing single quotes and shell metacharacters. When openvpn.connect_async.sh eval's the pfctl anchor name on connect or disconnect, the injected payload executes as root. A public proof-of-concept exploit is available, lowering the skill needed to reproduce the attack. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Authenticated VPN users can execute arbitrary commands as root on pfSense CE through 2.9.0 by exploiting an OS command injection in the OpenVPN connect/disconnect script, openvpn.connect_async.sh. The attack requires a valid VPN account authenticated via RADIUS or LDAP and a username containing single quotes and shell metacharacters that break out of an eval'd pfctl anchor name. Publicly available exploit code exists (reported by VulnCheck), though no active exploitation has been confirmed by CISA KEV. This is a credible high-priority issue for any pfSense CE deployment that uses OpenVPN with external authentication.
RemediationAI
No vendor-released patch has been identified at time of analysis. Until a fix is available, administrators should restrict VPN usernames to a safe character set by configuring RADIUS or LDAP backends to reject usernames containing single quotes, backticks, semicolons, ampersands, pipes, dollar signs, and other shell metacharacters; this prevents the injection payload from reaching the eval. If per-user firewall rules are not required, disabling the OpenVPN connect/disconnect script invocation removes the vulnerable code path, but this will also remove dynamic pf anchor rules and may break client-specific firewall behavior. Alternatively, switching to certificate-only authentication or a local authentication backend that does not allow arbitrary username input can eliminate the attack vector, though this may impact existing deployments. Monitor OpenVPN logs for usernames containing suspicious characters and audit pfctl anchor names for unexpected entries. Apply network segmentation to limit the impact of a compromised VPN account. For updates, monitor the VulnCheck advisory at https://www.vulncheck.com/advisories/netgate-pfsense-ce-through-2.9.0-os-command-injection-via-openvpn-connect-async-sh. A public exploit is available at https://github.com/abraxas/pfsense-ovpn-connect-eval.
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 vulnerability is a classic OS command injection (CWE-78) in the pfSense CE OpenVPN client connect/disconnect script located at /usr/local/sbin/openvpn.connect_async.sh (lines 83-114). The script uses shell eval to construct a pfctl anchor name from the authenticated username. When an attacker supplies a username containing a single quote and shell metacharacters, the eval'd string is broken out of, allowing arbitrary shell commands to run as root. The attack surface requires the OpenVPN server to be configured with the connect_async.sh script (common for per-user firewall rules) and external authentication via RADIUS or LDAP, where the username value is attacker-controlled. The CPE string cpe:2.3:a:netgate:pfsense_ce:*:*:*:*:*:*:*:* confirms all pfSense CE versions up to and including 2.9.0 are in scope. The vulnerability is remotely exploitable over the network (AV:N) but requires low privileges (PR:L) and is rated high complexity (AC:H) due to the specific configuration and injection prerequisites.
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:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable VPN connect with valid low-priv credentials (PR:L); AC:H reflects the required RADIUS/LDAP connect-script configuration; root command execution yields full C/I/A on the firewall.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
pfSense CE through 2.9.0 contains an OS command injection vulnerability in the OpenVPN openvpn.connect_async.sh script that allows authenticated VPN users to execute commands as root via crafted usernames. Attackers authenticated through RADIUS or LDAP can use usernames containing single quotes and shell metacharacters to break out of the eval'd pfctl anchor name on connect or disconnect.
Technical POC Analysis
OS command injection (CWE-78) in pfSense CE's OpenVPN client-connect/disconnect glue script openvpn.connectasync.sh, pinned by the researcher at commit 9363ac5b8651a1c7a333180425ce7719070f95f9 (2.9.0…
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 public PoC link from github
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
pfSense CE deployments through version 2.9.0 that use OpenVPN with RADIUS or LDAP authentication are exposed to a high-severity command injection that allows a user with valid VPN credentials to execute arbitrary commands as root on the firewall. This could enable an attacker to compromise the perimeter device, leading to potential network-wide lateral movement, data exposure, or downtime. Leadership should care because publicly available exploit code exists and no vendor-released patch identified at time of analysis, making timely mitigation critical for organizations relying on pfSense CE as their edge firewall.
Interim mitigations include restricting VPN access to trusted accounts, enforcing username character allowlists that exclude single quotes and shell metacharacters, disabling the OpenVPN connect/disconnect script if not essential, and monitoring for exploitation attempts. No vendor-released patch identified at time of analysis.
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
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
Command injection in Netgate pfSense CE through 2.9.0 allows remote authenticated users with limited 'Wireless Edit' or
EUVD-2026-102336
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB