Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with Captive Portal HA privilege
-
DeliverySet backwardsyncip to attacker XMLRPC server
-
ExploitServer returns connected_users with shell metacharacters
-
Executionpfctl command executes injected payload
-
ImpactArbitrary command execution as root
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 concrete conditions: (1) the attacker must possess the specific 'Captive Portal HA' WebGUI privilege (authenticated, per CVSS PR:H - this is not anonymous access); (2) the Captive Portal high-availability sync feature must be in use so that backwardsyncip and the XMLRPC connected_users exchange are active; and (3) the attacker must be able to point backwardsyncip at an XMLRPC server they control (or otherwise influence the synced connected_users ip/mac fields). The exploitable sink is captiveportal_load_pfctl passing unescaped ip/mac values into a pfctl shell command. Limiting factors: the required Captive Portal HA privilege is a non-default, specifically granted permission; the HA sync deployment mode is not universal; and successful injection depends on the firewall processing attacker-controlled sync data. Affected builds are pfSense CE 2.7.0 through 2.9.0. |
| Impact | This is a credible but privilege-gated priority rather than a mass-exploitation emergency. The CVSS 4.0 vector (AV:N/AC:L/PR:H/UI:N, VC/VI/VA all High, base 8.6) and CWE-78 confirm network-reachable, low-complexity command injection yielding full root compromise of the firewall. However, PR:H is the decisive limiter: exploitation requires an account already holding the Captive Portal HA privilege, so this is fundamentally a privilege-escalation-to-root path for an existing semi-trusted operator, not an anonymous internet attack. Publicly available exploit code exists (POC from VulnCheck/abraxaslabs), which raises operational risk and lowers the barrier to weaponization, but there is NO CISA KEV listing and NO EPSS score provided in the input, so there is no evidence of active exploitation - the exploitation signal is 'POC available' only, which must not be conflated with in-the-wild use. Net: high technical impact (root on a perimeter firewall) tempered by a non-default feature requirement and a privileged-account precondition. Treat as a high-priority patch for any pfSense CE deployment that uses Captive Portal HA, and as lower urgency where that feature and privilege are not provisioned. |
| Exploit ScenarioDerived | An attacker who holds the Captive Portal HA privilege on a pfSense CE firewall points the backwardsyncip setting at an XMLRPC server they control. That server returns a connected_users list whose ip or mac fields embed shell metacharacters, which captiveportal_load_pfctl passes unescaped into a pfctl shell command, executing attacker commands as root. A public proof-of-concept exists (github.com/abraxas/pfsense-cp-ha-pfctl), reducing the effort needed to reproduce the attack; CVSS AC:L indicates reliable, low-complexity triggering once the privilege is held. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Command injection in pfSense CE 2.7.0 through 2.9.0 allows authenticated users who hold only the Captive Portal HA privilege to execute commands as root by manipulating backwardsyncip to point at an attacker-controlled XMLRPC server and returning connected_users entries with shell metacharacters in ip or mac fields. Exploitation is privilege-gated: it requires the specific Captive Portal HA WebGUI permission, use of Captive Portal high-availability sync, and the ability to influence the synced connected_users data. Publicly available exploit code exists, but no CISA KEV confirmed active exploitation is identified; this is a credible privilege-gated priority rather than a mass-exploitation emergency.
RemediationAI
No vendor-released patch identified at time of analysis. Until a fixed pfSense CE release is available, remove the Captive Portal HA privilege from all users who do not strictly require it, because that privilege is the gate for this attack; the trade-off is that legitimate Captive Portal HA administration may be disrupted. If Captive Portal high-availability sync is not required, disable it to remove exposure; the trade-off is loss of captive portal session synchronization between HA peers. If HA sync must remain enabled, restrict backwardsyncip to a fixed, trusted peer IP and harden the XMLRPC peer endpoint so it cannot be replaced by an attacker-controlled server; the trade-off is reduced flexibility if legitimate HA peer addresses change. Also restrict WebGUI management access to trusted networks and monitor for anomalous pfctl command invocations or unexpected HA sync peer changes. Consult the VulnCheck advisory at https://www.vulncheck.com/advisories/netgate-pfsense-ce-2.7.0-through-2.9.0-command-injection-via-captive-portal-ha-sync and the public exploit reference at https://github.com/abraxas/pfsense-cp-ha-pfctl for further detection and mitigation details.
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 issue is OS command injection (CWE-78) in the PHP-based pfSense CE captive portal high-availability sync path. The affected CPE pattern is cpe:2.3:a:netgate:pfsense_ce:*:*:*:*:*:*:*:* for Netgate pfSense CE. In services_captiveportal_hasync.php, the backwardsyncip setting is used to contact an XMLRPC peer and process returned connected_users data. That data, specifically the ip or mac fields, is later passed without shell escaping by captiveportal_load_pfctl into a pfctl shell command in captiveportal.inc. A user with the Captive Portal HA privilege can redirect backwardsyncip to a malicious XMLRPC server that returns connected_users entries containing shell metacharacters, causing command execution as root on the firewall. The provided CVSS 4.0 vector is AV:N/AC:L/AT:N/PR:H/UI:N with high confidentiality, integrity, and availability impact, and the independent assessment maps to CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H, reinforcing that the attack is remote but requires high privileges and specific HA sync conditions.
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 XMLRPC sync with reliable injection (AV:N/AC:L); the Captive Portal HA privilege is required so PR:H and UI:N; root command execution gives C/I/A High.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
pfSense CE 2.7.0 through 2.9.0 contains a command injection vulnerability in services_captiveportal_hasync.php that allows users with only the Captive Portal HA privilege to execute commands as root. Attackers can set backwardsyncip to a malicious XMLRPC server returning connected_users with shell metacharacters in ip or mac fields, which captiveportal_load_pfctl passes unescaped to a pfctl shell command.
Technical POC Analysis
Note on evidence: the supplied source is the Abraxas Labs GitHub repository README for pfsense-cp-ha-pfctl.
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 versions 2.7.0 through 2.9.0 contain a high-severity command injection flaw that could allow an attacker with the Captive Portal HA WebGUI privilege to execute commands as root on the firewall appliance. Successful exploitation could lead to full compromise of this critical perimeter device, potentially enabling network intrusions or data exfiltration. Publicly available exploit code exists, and organizations should prioritize mitigation given the device's role in network security.
No vendor-released patch identified at time of analysis. Interim mitigations include disabling Captive Portal HA if not essential, restricting XMLRPC sync traffic to trusted internal servers, auditing and minimizing accounts with Captive Portal HA privilege, and monitoring logs for anomalous XMLRPC connections or shell metacharacters in connected_users data.
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
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
Command injection in Netgate pfSense CE through 2.9.0 allows remote authenticated users with limited 'Wireless Edit' or
EUVD-2026-102341
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB