Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with Firewall:Rules privilege
-
DeliverySubmit crafted separator[] color payload
-
ExploitPayload stored in firewall config
-
ExecutionAdministrator opens firewall rules page
-
PersistScript executes in admin browser
-
ImpactPerform WebGUI actions as admin
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 an authenticated pfSense CE WebGUI account holding either the 'Firewall: Rules' or 'NAT: Port Forward' privilege; the attacker submits a malicious value in the separator[] color field, which display_separator() emits unencoded into an HTML class attribute. Firing the payload additionally requires a higher-privileged administrator to passively load the firewall rules page (UI:P) in an authenticated session. Limiting factors: a valid privileged (non-admin) account is mandatory, victim administrator interaction is required, and only versions 2.3.0 through 2.9.0 are affected - reducing this to an insider/privilege-escalation scenario rather than unauthenticated remote compromise. |
| Impact | This is a genuine but moderate-priority issue rather than an urgent emergency. The CVSS 4.0 base score of 4.8 (Medium) is consistent with the vector: AV:N makes it network-reachable, but PR:H requires the attacker to already hold a privileged WebGUI role (Firewall: Rules or NAT: Port Forward), and UI:P means an administrator must passively view the affected firewall rules page for the payload to fire. Impact is capped at VC:L/VI:L/VA:N - this is a stored XSS that lets a lower-privileged operator escalate by hijacking an administrator's authenticated WebGUI session, not a direct code-execution or data-destruction flaw. A public exploit exists (abraxas/pfsense-separator-color-xss, referenced by VulnCheck), which raises practical likelihood, but there is NO CISA KEV listing and NO EPSS score provided in the input, so there is no evidence of active, widespread exploitation. The signals are internally consistent - no contradiction between the network vector and the described web-based attack. The chief limiting factor is the PR:H prerequisite: an attacker needs an existing semi-trusted firewall-admin account, making this primarily an insider/privilege-escalation or lateral-movement concern rather than a mass-exploitable perimeter bug. EPSS data is missing and should be checked before final prioritization. |
| Exploit ScenarioDerived | A pfSense CE operator granted only limited Firewall: Rules or NAT: Port Forward permissions creates a firewall separator and submits a crafted separator[] color value containing a script payload, which display_separator() renders unencoded into a class attribute. When a full administrator later opens the firewall rules page, the stored script executes in their browser and performs WebGUI actions (e.g., creating an admin user or altering rules) with the administrator's privileges. A public proof-of-concept for this exact separator-color vector is available. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Stored cross-site scripting in Netgate pfSense CE 2.3.0 through 2.9.0 lets an authenticated WebGUI user who holds the Firewall: Rules or NAT: Port Forward privilege plant a crafted separator[] color value that display_separator() writes unencoded into an HTML class attribute, so the payload executes in the browser of any administrator who subsequently opens the firewall rules or port-forward page. Because the script runs inside that administrator's authenticated session, it can drive WebGUI actions at the higher privilege level; publicly available exploit code exists, but there is no CISA KEV entry, and the assessed CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N) frames this as a moderate, insider-flavoured privilege-escalation issue rather than an urgent unauthenticated compromise.
RemediationAI
No exact vendor-released fix version is identified in the provided intelligence; the available references point to vulnerable source locations, a VulnCheck advisory and a public proof-of-concept rather than to a tagged patched release, so confirm the current fixed release directly with Netgate (https://www.vulncheck.com/advisories/netgate-pfsense-ce-2.3.0-through-2.9.0-stored-xss-via-separator-color) before assuming remediation is available. Until a patched build is confirmed and deployed, apply compensating controls in this order: review every WebGUI account and strip the Firewall: Rules and NAT: Port Forward privileges from any operator who does not strictly need them, since the vulnerability requires such an account and removing the privilege eliminates the injection vector entirely (trade-off: those users can no longer manage rules or port forwards); inspect and remove any custom rule separators or unexpected separator color values on the Firewall: Rules and NAT: Port Forward pages, as the malicious value persists in the configuration and will keep firing for each administrator who loads the page (trade-off: cosmetic loss of rule list organisation, and it must be repeated after any configuration restore); restrict WebGUI access to a trusted management network or VPN and enable HTTPS exclusively, which does not fix the defect but limits who can reach the injection endpoint and reduces session-hijacking follow-on (trade-off: no protection against a malicious insider); and monitor WebGUI audit/authentication logs for rule-page edits or configuration changes originating from delegated operator accounts, treating such activity as potential post-exploitation. A WAF rule that rejects markup characters in separator color parameters offers only partial, easily bypassed coverage and should not be relied on as the primary control.
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 FreeBSD-based firewall and routing distribution whose administration surface is a PHP WebGUI. The flaw is a classic CWE-79 improper-neutralization-of-input-during-web-page-generation issue in a persistent (stored) form: the separator[] color value supplied when defining rule-list separators is passed through the display_separator() routine in src/etc/inc/filter.inc (lines 6238-6252 of the referenced commit) and emitted directly into a class attribute while the page is assembled in src/usr/local/www/firewall_rules.php (lines 236-245), with no HTML-attribute encoding applied. Because the sink is an attribute context rather than element text, the injected characters are interpreted by the browser as markup and any script the attacker crafts runs in the WebGUI origin of the administrator viewing the page. The CVSS vector confirms the prerequisite is an authenticated account with high privileges (PR:H) - in practice a delegated Firewall: Rules or NAT: Port Forward operator - while the victim is a separate, higher-privileged administrator who merely has to load the affected page (UI:R), and the assessed scope change (S:C) reflects that the attacker's script executes against a security context more privileged than the one the attacker legitimately owns. Only versions 2.3.0 through 2.9.0 are reported affected, matching the wildcarded CPE cpe:2.3:a:netgate:pfsense_ce:*:*:*:*:*:*:*:* supplied by the source data.
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:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
PR:H because the attacker needs an existing privileged firewall role, UI:R because an admin must view the page, and S:C as the stored script executes in the admin's browser context with low C/I impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Netgate pfSense CE 2.3.0 through 2.9.0 contains a stored cross-site scripting vulnerability that allows authenticated users with Firewall: Rules or NAT: Port Forward privileges to inject scripts via the separator color field. Attackers can submit a crafted separator[] color value that display_separator() renders unencoded into class attributes, executing in administrators' browsers to perform WebGUI actions 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-102344
NVD
CVE.org
EPSS
GitHub
Exploit-DB