Skip to main content

pfSense CE CVE-2026-111225

| EUVDEUVD-2026-102337 LOW
OS Command Injection (CWE-78)
2026-10-15 VulnCheck
2.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as OpenVPN client with crafted cert CN/username
  2. Exploit
    Embed shell metacharacters in common name
  3. Execution
    Script interpolates value unquoted into su -c
  4. Impact
    Execute 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.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 2.7% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

pfSense CE 2.5.0 ≤2.9.0

Affected Packages

euvd pfsense_ce no fix

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

Vendor (VulnCheck) PRIMARY 2.3 LOW
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
vuln.today AI 5.0 MEDIUM

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.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

EPSS Score
2.7%
Top 14% exploitable
Prevalence
High
widely-deployed open-source firewall/router platform across SMB and edge networks
Exploit
POC
Public exploit code exists
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 LOW
CISA KEV No
Public POC Yes
EPSS 2.7%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Low
Technical Impact
Partial

Priority Score

35
Low Medium High Critical
KEV: 0
EPSS: +3
CVSS: +12
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

CVE-2023-48795 MEDIUM POC
5.9 Dec 18

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot

CVE-2026-111214 HIGH POC
8.6 Oct 15

OS command injection in Netgate pfSense CE 2.7.0 through 2.9.0 allows an authenticated web-interface user who holds the

CVE-2026-111229 HIGH POC
8.6 Oct 15

Command injection in pfSense CE 2.7.0 through 2.9.0 allows authenticated users who hold only the Captive Portal HA privi

CVE-2026-111224 HIGH POC
7.7 Oct 15

Authenticated VPN users can execute arbitrary commands as root on pfSense CE through 2.9.0 by exploiting an OS command i

CVE-2026-97730 HIGH POC
8.5 Sep 25

PHP code execution on Netgate pfSense Plus and pfSense CE firewalls can be achieved by an authenticated, highly privileg

CVE-2026-111231 HIGH POC
8.6 Oct 15

Authorization bypass in Netgate pfSense CE through 2.9.0 allows an authenticated WebGUI account that holds page privileg

CVE-2026-111226 HIGH POC
8.6 Oct 15

Command injection in Netgate pfSense CE 2.4.5 through 2.9.0 lets an authenticated WebGUI user holding the Advanced Admin

CVE-2026-111223 HIGH POC
8.6 Oct 15

Command injection in Netgate pfSense CE 2.7.0 through 2.9.0 lets an authenticated administrator who holds IPsec Mobile c

CVE-2026-111220 HIGH POC
8.6 Oct 15

Root command execution on pfSense CE through 2.9.0 is achievable by authenticated attackers holding the 'WebCfg - Interf

CVE-2026-111218 HIGH POC
8.6 Oct 15

OS command injection in Netgate pfSense CE 2.7.0 through 2.9.0 lets an authenticated web GUI user who holds the Traffic

CVE-2026-111217 HIGH POC
8.6 Oct 15

Command injection in Netgate pfSense CE through 2.9.0 allows an authenticated user with Virtual IP (CARP) edit privilege

CVE-2026-111216 HIGH POC
8.6 Oct 15

OS command injection in Netgate pfSense CE (through 2.9.0) allows remote attackers holding an authenticated web-GUI acco

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