Description
pfSense Plus before 26.07 and CE before 2.9.0 allow authenticated users with the Status: Monitoring privilege to inject arbitrary JavaScript via graph configuration parameters in /status_monitoring.php. Multiple POST parameters including graph-left, graph-right, time-period, resolution, start-date, end-date, start-time, end-time, graph-type, invert, and refresh-interval are concatenated and written to the global pfSense XML configuration without sanitization, then echoed unsanitized into a JavaScript string context on page render. Because the setting is stored in the global configuration, the payload executes in the browser of every user who visits the Status: Monitoring page.
Published: 2026-09-03
Score: 5.1 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability allows authenticated users who possess the Status: Monitoring privilege to inject arbitrary JavaScript code through several POST parameters of /status_monitoring.php. These parameters—such as graph-left, graph-right, time-period, resolution, and others—are concatenated and written directly to pfSense’s global XML configuration file without any sanitization. When the configuration is later rendered in a page, the unsanitized JavaScript string is echoed into a script context, causing the code to execute in the browser of any user who visits the Status: Monitoring page. This stores a persistent cross‑site scripting payload that can be leveraged for session hijacking, credential theft, or defacement.

Affected Systems

Netgate’s pfSense CE versions earlier than 2.9.0 and Netgate’s pfSense Plus versions earlier than 26.07 are affected. Users running these builds may have configured graph settings in status_monitoring.php that contain unsanitized values, enabling the stored payload to be delivered to other authenticated users.

Risk and Exploitability

The CVSS score of 5.1 indicates a moderate severity, with no exploit probability data available from EPSS and the flaw is not listed in CISA’s KEV catalog. Exploitation requires possession of an authenticated account with the Status: Monitoring privilege; once the payload is stored, it is executed automatically in the browsers of all users who access the monitoring page. The attack vector is internal via the web application, and the risk is confined to users who can view the Status: Monitoring interface.

Generated by OpenCVE AI on September 3, 2026 at 15:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade pfSense CE to version 2.9.0 or later, or upgrade pfSense Plus to version 26.07 or later, to apply the vendor’s fix.
  • Restrict access to the Status: Monitoring page to the single administrator account whenever possible and configure a web‑application firewall to block non‑alphanumeric input on status_monitoring.php parameters.
  • Manually remove any suspicious script payloads from the global XML configuration file by editing the config or using the config editor, then reset the affected graph settings to safe defaults.

Generated by OpenCVE AI on September 3, 2026 at 15:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 03 Sep 2026 15:45:00 +0000

Type Values Removed Values Added
First Time appeared Netgate
Netgate pfsense Ce
Netgate pfsense Plus
Vendors & Products Netgate
Netgate pfsense Ce
Netgate pfsense Plus

Thu, 03 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
Description pfSense Plus before 26.07 and CE before 2.9.0 allow authenticated users with the Status: Monitoring privilege to inject arbitrary JavaScript via graph configuration parameters in /status_monitoring.php. Multiple POST parameters including graph-left, graph-right, time-period, resolution, start-date, end-date, start-time, end-time, graph-type, invert, and refresh-interval are concatenated and written to the global pfSense XML configuration without sanitization, then echoed unsanitized into a JavaScript string context on page render. Because the setting is stored in the global configuration, the payload executes in the browser of every user who visits the Status: Monitoring page.
Title pfSense Plus < 26.07 / CE < 2.9.0 Stored XSS via status_monitoring.php
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 5.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N'}

cvssV4_0

{'score': 5.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N'}


Subscriptions

Netgate Pfsense Ce Pfsense Plus
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-03T14:38:06.457Z

Reserved: 2026-06-18T19:15:10.651Z

Link: CVE-2026-56126

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-03T15:17:30.630

Modified: 2026-09-03T15:17:30.630

Link: CVE-2026-56126

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-03T15:30:05Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')