Skip to main content

pfSense CE EUVDEUVD-2026-102339

| CVE-2026-111227 MEDIUM
Improper Neutralization of CRLF Sequences ('CRLF Injection') (CWE-93)
2026-10-15 VulnCheck
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with DNS Resolver ACL privilege
  2. Delivery
    Submit ACL with CR/LF in aclname/aclaction
  3. Exploit
    Inject directives into access_lists.conf
  4. Execution
    Unbound loads forged local-data/forward-zone
  5. Impact
    Poison DNS answers to LAN clients

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization CRLF sequence sanitization
Exploitation Conditions

Requires an authenticated pfSense webConfigurator account holding the specific 'DNS Resolver: Access Lists' privilege, and the Unbound DNS Resolver with access-list functionality in use. Exploitation is performed by placing raw CR/LF characters into the aclname or aclaction fields, which are written unsanitized to access_lists.conf and interpreted as additional Unbound directives. Limiting factors: this is not remote-unauthenticated - it demands a privileged, trusted role (effectively administrative over DNS configuration), so realistic risk is insider misuse or a compromised privileged session rather than opportunistic external attack; no end-user interaction is required once that privilege is held.

Impact

This is a genuine but bounded-priority issue rather than an emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:N) scoring 5.1 (Medium) tells the real story: network-reachable and low-complexity, but gated behind PR:H - the attacker must already hold the pfSense 'DNS Resolver: Access Lists' privilege, which is an administrative-tier grant on a firewall. Impact is limited to integrity and availability of DNS (VI:L/VA:L on the vulnerable system, SI:L/SA:L on downstream LAN clients) with no confidentiality loss (VC:N). Signals partially conflict: a public exploit exists (VulnCheck-reported POC on GitHub), which raises practical exploitability, yet there is no CISA KEV listing and no EPSS score was provided, so there is no evidence of widespread or active exploitation - the POC availability and the lack of KEV together point to a known, demonstrable technique that is not (yet) being exploited at scale. The dominant risk driver is insider/privilege-escalation abuse: a user who already has ACL access can escalate from managing access lists to arbitrary Unbound directive injection, effectively poisoning DNS for the network. Net: real and worth patching on a normal cycle, but not a drop-everything issue given the high-privilege precondition.

Exploit ScenarioDerived

An authenticated pfSense operator (or an attacker who has phished/compromised an account) holding the 'DNS Resolver: Access Lists' privilege edits a DNS Resolver access list and embeds CR/LF characters in the ACL name or action field. These characters break out of the intended line in access_lists.conf and inject attacker-chosen Unbound directives (local-data, local-zone, forward-zone), silently redirecting or fabricating DNS answers for all LAN clients. A public proof-of-concept for this technique is available (GitHub, reported by VulnCheck), lowering the effort to reproduce.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.8% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 15, 2026

Authenticated pfSense CE users holding the 'DNS Resolver: Access Lists' privilege can embed CR/LF characters in the aclname or aclaction fields of an Unbound access list, causing attacker-supplied Unbound directives (local-data, local-zone, forward-zone) to be written into access_lists.conf and letting the attacker control which DNS answers are served to LAN clients. All pfSense CE versions through 2.9.0 are affected (CPE cpe:2.3:a:netgate:pfsense_ce:*), the root cause is CWE-93 (improper neutralization of CRLF sequences), and publicly available exploit code exists; there is no CISA KEV confirmation of active exploitation. Because the CVSS vector requires PR:H, exploitation demands an authenticated account with a specific, highly privileged DNS configuration role, so realistic risk is insider misuse or abuse of a compromised privileged session rather than opportunistic external attack - a genuine but bounded-priority issue rather than an emergency.

RemediationAI

No vendor-released patch version is identified in the available data, so no upgrade target can be cited; the references point to the vulnerable code in services_unbound_acls.php and unbound.inc, and defenders should track the VulnCheck advisory (https://www.vulncheck.com/advisories/netgate-pfsense-ce-through-2.9.0-crlf-injection-via-services-unbound-acls-php) and pfSense release notes for a fixed build before planning an upgrade. Until then, tighten the privilege that gates this attack: the 'DNS Resolver: Access Lists' privilege should be granted only to fully trusted administrators, and the pfSense user/privilege list should be audited to confirm that delegated or helpdesk-style accounts cannot edit Unbound access lists - the trade-off is that legitimate delegated DNS ACL management must move back to full administrators. As a compensating control, inspect /var/unbound/access_lists.conf and the Unbound configuration for local-data, local-zone, or forward-zone directives that do not correspond to anything configured in the GUI, since such stray entries are the fingerprint of this injection; alerting on writes to that file gives detection but not prevention and requires file-integrity monitoring to be deployed on the firewall. Disabling the Unbound access-list feature entirely, or switching DNS resolution to a service that does not consume these fields, removes the injection path at the cost of per-client ACL granularity and is the most aggressive fallback. Because exploit code is publicly available (https://github.com/abraxas/pfsense-unbound-acl-crlf), treat any account holding this privilege as a high-value target and pair privilege reduction with session hardening such as unique credentials, MFA on the webConfigurator, and prompt revocation of unused accounts; note that these measures reduce the reachable attacker population but do not fix the underlying CRLF handling.

Affected VersionsENISA

pfSense CE 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

pfSense CE's webConfigurator is a PHP application, and the DNS Resolver (Unbound) access-list editor lives in src/usr/local/www/services_unbound_acls.php, which accepts the aclname and aclaction form fields; the corresponding generation logic in src/etc/inc/unbound.inc (referenced lines L1094-L1112) concatenates those values straight into access_lists.conf. Unbound configuration is line-oriented: a newline terminates one directive and begins the next, so material inserted after an injected CR/LF is parsed as an independent, attacker-authored directive (local-data, local-zone, forward-zone) rather than as part of the ACL definition. This is the classic CWE-93 failure - data crossing a trust boundary into a file format with no neutralization or escaping of carriage-return and line-feed characters - here manifesting as configuration injection into a DNS resolver, i.e. code/configuration injection in a PHP-generated config file (tagged PHP, Code Injection). The affected component set is the webConfigurator ACL UI plus the Unbound config writer, and because the injected directives change how Unbound itself answers queries, the assessed CVSS:3.1 vector records S:C with VC:N/VI:L/VA:L and SC:N/SI:L/SA:L: no confidentiality impact, limited integrity and availability impact on the resolver and, by extension, on clients that rely on it. Notably, the sanitization gap is structural - the ACL fields were never designed to be directive-safe - and the CVSS:4.0 vector corroborates the low integrity/availability impact and the PR:H prerequisite.

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 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:L/VA:L/SC:N/SI:L/SA:L
vuln.today AI 5.5 MEDIUM

Network-accessible webConfigurator with low complexity, but the DNS Resolver ACL privilege forces PR:H; injected directives affect downstream LAN clients (S:C), harming DNS integrity and availability only (C:N).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Netgate pfSense CE through 2.9.0 contains a CRLF injection vulnerability in services_unbound_acls.php that allows authenticated users with the DNS Resolver: Access Lists privilege to inject Unbound configuration directives. Attackers can embed CR/LF characters in the aclname or aclaction fields written to access_lists.conf to add local-data, local-zone, or forward-zone directives and control DNS answers served to LAN clients.

Threat Intelligence Overview

EPSS Score
0.8%
Top 44% exploitable
Prevalence
High
one of the most widely deployed open-source firewall/router platforms
Exploit
POC
Public exploit code exists
Data Quality
4 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 Yes
EPSS 0.8%
Patch available No
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· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

47
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +26
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

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