Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as read-only WebGUI user
-
DeliveryAccess config backup/restore page
-
ExploitUpload crafted config.xml bypassing Deny Config Write
-
Executionconfig_install() writes config as root
-
PersistTrigger reload or reboot
-
ImpactExecute arbitrary code as root
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated WebGUI account that holds page privileges for at least one of services_acb.php, uploadconfig.php, diag_confbak.php, or diag_backup.php - these are the exact pages whose config_restore()/config_install() calls fail to honor the 'User - Config: Deny Config Write' privilege. The account can otherwise be read-only, so the limiting factors are (1) possession of a valid WebGUI login, (2) assignment of one of those specific page privileges, and (3) the exploit only takes full effect after a configuration reload or reboot, meaning root code execution is not instantaneous. No end-user interaction beyond the attacker's own upload is needed, and the attack is reachable over the network against the management interface. |
| Impact | This is a credible, actionable priority rather than an inflated high-CVSS score. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H) rates 8.6 and describes a network-reachable, low-complexity attack with high confidentiality, integrity, and availability impact - consistent with the description's outcome of root-level code execution. The one tempering signal is PR:H (privileges required), meaning this is NOT an unauthenticated exploit: the attacker must already hold a WebGUI account with specific page privileges, so it is primarily a privilege-escalation/authorization-bypass path from a limited (read-only) operator to full root. Public exploit code exists (GitHub PoC plus a VulnCheck advisory and direct links to the vulnerable config.lib.inc source), which raises real-world exploitability for anyone who already has a foothold account. There is NO CISA KEV listing and NO EPSS score provided in the input, so there is no evidence of active mass exploitation - this should be read as a high-value post-authentication escalation on a security appliance, not a wormable internet-wide threat. Note a nuance to verify: the input vector uses PR:H, but the description characterizes the attacker as a 'read-only' user holding page privileges, which reads closer to a low-privilege account (PR:L) - this discrepancy slightly raises real-world risk versus the stated PR:H and should be confirmed against the specific privilege model. |
| Exploit ScenarioDerived | A low-privilege pfSense WebGUI operator who has been granted page access to backup/restore functions (e.g. diag_backup.php or services_acb.php) uploads a maliciously crafted config.xml; because config_restore()/config_install() ignore the 'Deny Config Write' privilege, the file is installed despite the account being read-only. After the next reload or reboot the attacker-controlled configuration executes with root privileges, yielding full firewall compromise. Public exploit code for this authorization bypass is already available. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Authorization bypass in Netgate pfSense CE through 2.9.0 allows an authenticated WebGUI account that holds page privileges for services_acb.php, uploadconfig.php, diag_confbak.php, or diag_backup.php to replace config.xml despite lacking the 'User - Config: Deny Config Write' privilege; the account can otherwise be read-only. Successful exploitation can yield root-level code execution after a configuration reload or reboot, and publicly available exploit code exists. The independent assessment scores this CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (8.6), reflecting a remote authenticated low-privilege attacker with high confidentiality, integrity, and availability impact.
RemediationAI
No vendor-released patch identified at time of analysis; monitor the VulnCheck advisory at https://www.vulncheck.com/advisories/netgate-pfsense-ce-through-2.9.0-authorization-bypass-via-config-restore-and-config-install and the pfSense project for a fixed release. In the interim, remove privileges for services_acb.php, uploadconfig.php, diag_confbak.php, and diag_backup.php from any WebGUI account that does not explicitly require configuration backup or restore, especially read-only accounts; this blocks the reachable attack path but breaks those users' backup/restore workflows. Restrict WebGUI access to a trusted management network or VPN and avoid exposing the management interface to untrusted networks, though this may disrupt remote administration. Enable configuration-change logging and alerting for config.xml modifications, and treat any unexpected config restore or reboot as a potential compromise. Do not rely solely on the 'User - Config: Deny Config Write' privilege until a patch is confirmed, because the vulnerable functions ignore it.
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 is a PHP-based firewall and router platform whose WebGUI management interface relies on config.xml as the central configuration store; config_restore() and config_install() in src/etc/inc/config.lib.inc are intended to restore or install a configuration file but do not honor the 'User - Config: Deny Config Write' privilege. This is CWE-863 Incorrect Authorization: the page-level checks for services_acb.php, uploadconfig.php, diag_confbak.php, and diag_backup.php grant access to backup/restore functionality, yet the underlying write path bypasses the explicit deny-write restriction. An attacker with a valid WebGUI login and one of those page privileges can supply a crafted config.xml, which pfSense later applies during a reload or reboot; because config.xml can define system services, cron jobs, or startup behavior, the result is root-level code execution. The CPE cpe:2.3:a:netgate:pfsense_ce:*:*:*:*:*:*:*:* covers Netgate pfSense CE, and the description limits affected versions to through 2.9.0. Public exploit code is available in the referenced GitHub repository, and VulnCheck is credited for the report.
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:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable management UI (AV:N/AC:L); a read-only operator account with page privileges is a low-privilege authenticated user (PR:L, versus the input's PR:H); root code execution yields full C/I/A.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Netgate pfSense CE through 2.9.0 contains an authorization bypass vulnerability that allows read-only WebGUI users to replace config.xml because config_restore() and config_install() ignore the 'User - Config: Deny Config Write' privilege. Attackers holding page privileges for services_acb.php, uploadconfig.php, diag_confbak.php, or diag_backup.php can install a chosen config.xml to gain root-level code execution after reload or reboot.
Technical POC Analysis
The flaw is a missing authorization check, CWE-863 (Incorrect Authorization).
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
Netgate pfSense CE deployments through version 2.9.0 are affected by a high-severity authorization bypass in which an authenticated low-privileged WebGUI account with access to specific configuration pages can replace config.xml and potentially achieve root-level code execution after a configuration reload or reboot; publicly available exploit code exists, and no vendor-released patch identified at time of analysis. Because pfSense is commonly used as a network edge firewall, VPN, and routing appliance, successful exploitation could let an attacker with a valid low-privilege account take full control of a critical security device, disrupting connectivity and exposing sensitive network traffic or credentials. Leadership should prioritize immediate mitigation and monitoring for organizations relying on affected pfSense CE versions, especially where multiple administrators or delegated WebGUI accounts exist.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict WebGUI access to trusted management networks; remove or restrict privileges for services_acb.php, uploadconfig.php, diag_confbak.php, and diag_backup.php from non-administrative accounts; enforce least privilege, strong authentication, and MFA where available; monitor for unauthorized config.xml changes, configuration reloads, and reboots; maintain offline known-good configuration backups.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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
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-102343
NVD
CVE.org
EPSS
GitHub
Exploit-DB