Medium severity · published Aug 19, 2026
CVE-2026-67189
pfSense Plus/CE Stored XSS via Traffic Graphs PTR Record
6.1
CVSS
1.2%
EPSS
No
On KEV
Description
pfSense Plus before 26.07 and pfSense CE through 2.8.1 contain a stored cross-site scripting vulnerability in the Traffic Graphs top-talkers feature, where PTR records returned by reverse DNS lookups are incorporated without sanitization into AJAX responses and rendered as HTML through a DOM sink in the administrator interface. An attacker who controls a PTR record and generates sufficient traffic to appear as a top talker can execute arbitrary JavaScript in an administrator's browser, gaining access to the authenticated session context and same-origin access to the firewall management interface, enabling account creation and arbitrary OS command execution.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
Required
Confidentiality
Low
Integrity
Low
Availability
None
Scope
Changed
Exploitation
Is it being used?
Exploit prediction (EPSS)1.2% · higher than 67% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
PC
pfSense CE · Netgate
through 2.8.1 · source: vendor
PP
pfSense Plus · Netgate
before 26.07 · source: vendor
Affected product
PC
pfSense CE
Netgate
More from pfSense CE
8.8
CVE-2026-111225
Netgate pfSense CE 2.5.0 through 2.9.0 OS Command Injection via openvpn.learn-address.sh
8.8
CVE-2024-54780
Netgate pfSense CE (prior to 2.8.0 beta release) and corresponding Plus builds are vulnerable to command injection in the OpenVPN widget due to improper sanitization of…
8.5
CVE-2026-97730
In Netgate pfSense Plus before 26.07 and pfSense CE before 2.9.0, a Local File Inclusion (LFI) vulnerability in the Dashboard (index.php) widget sequence data handling allows an…
7.5
CVE-2026-111224
Netgate pfSense CE through 2.9.0 OS Command Injection via openvpn.connect_async.sh
7.2
CVE-2026-111231
Netgate pfSense CE through 2.9.0 Authorization Bypass via config_restore() and config_install()