Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with DNS Resolver ACL privilege
-
DeliverySubmit ACL with CR/LF in aclname/aclaction
-
ExploitInject directives into access_lists.conf
-
ExecutionUnbound loads forged local-data/forward-zone
-
ImpactPoison 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
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
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).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
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-102339
NVD
CVE.org
EPSS
GitHub
Exploit-DB