Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious firewall_rules.php GET link
-
DeliveryLure privileged WebGUI user to click
-
ExploitServer reflects unencoded if parameter
-
ExecutionScript executes in victim's browser session
-
ImpactAttacker acts with victim's firewall privileges
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, 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 the non-default 'Require Firewall Interface' option to be enabled on pfSense CE 2.7.1 through 2.9.0; without it the vulnerable code path in firewall_rules.php is not reachable. The attacker must also lure a user who already holds firewall-rules privileges into opening a crafted GET link (the unencoded 'if' parameter carries the payload), so success depends on social engineering of an authenticated privileged operator. Limiting factors: non-default configuration, required user interaction, a privileged (not anonymous) victim, and execution confined to that victim's WebGUI session privileges - there is no path to code execution against default installations. |
| Impact | This is a low-priority issue despite the existence of public exploit code. The vendor CVSS 4.0 base score is only 2.3 (Low), and the vector tells a consistent story: AV:N (reachable over the network) but AC:H and AT:P mean exploitation depends on a non-default configuration ('Require Firewall Interface' enabled), and UI:P means the attack cannot succeed without a privileged user being tricked into clicking a crafted link. Although PR:N indicates the attacker themselves needs no credentials, the payload only executes with the privileges of the lured victim, who must already hold firewall-rules privileges - so this is not a path to unauthenticated takeover. POC/exploit code is publicly available (GitHub + VulnCheck advisory), which raises reproducibility, but POC availability is NOT active exploitation: there is no CISA KEV listing and no EPSS score was provided in the input, so widespread opportunistic exploitation cannot be inferred. Impact is bounded (VC:L/VI:L, no availability impact). Net: a real, confirmed reflected XSS worth patching in routine cycles, but the stacked prerequisites (non-default option, privileged victim, user interaction) make it far lower real-world risk than its CWE class alone might suggest. |
| Exploit ScenarioDerived | On a pfSense CE instance (2.7.1-2.9.0) with the non-default 'Require Firewall Interface' option enabled, an attacker crafts a GET URL to firewall_rules.php containing a malicious script in the unencoded 'if' parameter and sends it to an administrator with firewall-rules privileges. When that user opens the link while authenticated to the WebGUI, the reflected script runs in their session and can act with their privileges. Public exploit code for this specific parameter exists (VulnCheck advisory and a GitHub PoC repo), lowering the effort to reproduce it. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Reflected cross-site scripting in Netgate pfSense CE 2.7.1 through 2.9.0 allows unauthenticated remote attackers to inject script into the WebGUI via the unencoded 'if' parameter in firewall_rules.php, but only when the non-default 'Require Firewall Interface' option is enabled and a privileged operator is lured into opening a crafted GET link. Publicly available exploit code exists, yet the vulnerability is a low-priority issue because exploitation requires a non-default configuration, user interaction, and a victim who already holds firewall-rules privileges, with impact confined to that victim's session.
RemediationAI
Vendor patch status: upstream fix available (commit 9363ac5b8651a1c7a333180425ce7719070f95f9); a released patched version is not independently confirmed, so consult the VulnCheck advisory (https://www.vulncheck.com/advisories/netgate-pfsense-ce-2.7.1-through-2.9.0-reflected-xss-via-firewall-rules-php) for the latest fixed release. The most direct mitigation is to disable the non-default 'Require Firewall Interface' option if it is not required, which makes the vulnerable code path unreachable - trade-off is that it removes an additional interface-binding security control. Because exploitation requires luring a privileged user, restrict WebGUI access to trusted management networks and educate firewall-rules-privileged users to avoid opening untrusted GET links. If the option must remain enabled and no patch is applied, consider a reverse proxy or WAF rule that encodes or strips unexpected characters in the 'if' parameter, though such controls are bypassable and add latency. Monitor for vendor patched releases and apply them promptly.
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 underlying issue is CWE-79 reflected cross-site scripting in the PHP-based pfSense CE WebGUI. The firewall_rules.php script reflects the value of the 'if' parameter into the HTML response without proper output encoding (see lines 138-146 and 391 in commit 9363ac5b8651a1c7a333180425ce7719070f95f9). This is only reachable when the non-default 'Require Firewall Interface' option is enabled; otherwise the vulnerable code path is not reached. The CVSS 4.0 score of 2.3 (AV:N/AC:H/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N) and the independent CVSS 3.1 assessment (AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N) both reflect the limited scope: an unauthenticated attacker can deliver a crafted GET link, but exploitation requires a privileged, authenticated victim to click it and results only in script execution within that victim's WebGUI session. The CPE identifier cpe:2.3:a:netgate:pfsense_ce:*:*:*:*:*:*:*:* covers the product generically, with the affected version range being 2.7.1 through 2.9.0 per the description and VulnCheck advisory.
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:H/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
AC:H reflects the required non-default option, PR:N since the attacker needs no account, UI:R for the lured click, S:C as script runs in the victim's browser context, and C:L/I:L with no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Netgate pfSense CE 2.7.1 through 2.9.0 contains a reflected cross-site scripting vulnerability in firewall_rules.php that allows remote attackers to inject script via the unencoded if parameter. When the non-default Require Firewall Interface option is enabled, attackers can lure users with firewall rules privileges into opening a crafted GET link to execute script in the WebGUI with their privileges.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
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
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
Command injection in Netgate pfSense CE through 2.9.0 allows remote authenticated users with limited 'Wireless Edit' or
Command injection in Netgate pfSense CE 2.4.5 through 2.9.0 lets an authenticated WebGUI user holding the Advanced Admin
OS command injection in Netgate pfSense CE (through 2.9.0) allows remote attackers holding an authenticated web-GUI acco
Command injection in pfSense CE 2.7.0 through 2.9.0 allows authenticated users who hold only the Captive Portal HA privi
Authorization bypass in Netgate pfSense CE through 2.9.0 allows an authenticated WebGUI account that holds page privileg
Authenticated VPN users can execute arbitrary commands as root on pfSense CE through 2.9.0 by exploiting an OS command i
Command injection in Netgate pfSense CE 2.7.0 through 2.9.0 lets an authenticated administrator who holds IPsec Mobile c
PHP code execution on Netgate pfSense Plus and pfSense CE firewalls can be achieved by an authenticated, highly privileg
EUVD-2026-102345
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB