CVE-2026-45694
PHP vulnerability analysis and mitigation

Overview

CVE-2026-45694 is a reflected Cross-Site Scripting (XSS) vulnerability in LibreNMS affecting the Proxmox application integration. It allows authenticated attackers to inject arbitrary JavaScript via the instance or vmid GET parameters, which are unsafely interpolated into a document.title JavaScript assignment in the rendered page. All versions up to and including 26.4.0 are affected; version 26.5.0 contains the fix. The vulnerability was published on August 4, 2026, and carries a CVSS v3.1 base score of 5.4 (Medium) (GitHub Advisory, LibreNMS Advisory).

Technical details

The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation). In LegacyController.php (line 75), the page title is written into a <script> block using PHP string interpolation: $html .= "<script>\ndocument.title = '$title';\n</script>";. The apps/proxmox.inc.php file pushes the $vars['instance'] and $vars['vmid'] GET parameters directly into $pagetitle with only strip_tags() applied — insufficient to prevent JavaScript injection. An attacker can terminate the JS string literal with a single quote and inject arbitrary script (e.g., ?instance='%3Balert(document.cookie)%3B//), which is then reflected verbatim in the server's HTML response (GitHub Advisory, LibreNMS Advisory).

Impact

Successful exploitation allows an attacker to execute arbitrary JavaScript in the browser context of an authenticated LibreNMS user who clicks a crafted link. This can lead to session cookie theft, credential harvesting, unauthorized actions performed on behalf of the victim, and potential account takeover within the LibreNMS instance. Availability is not impacted, but both confidentiality (e.g., cookie/session data exposure) and integrity (e.g., DOM manipulation, phishing overlays) are affected at a low level (GitHub Advisory).

Exploitability

A public proof-of-concept is included in the GitHub Security Advisory, demonstrating cookie exfiltration via a crafted URL. Exploitation requires the attacker to hold a valid (low-privilege) authenticated session and to socially engineer another authenticated user into clicking the malicious link. There is no evidence of in-the-wild exploitation, no CISA KEV listing, and no known exploit kit integration at this time. The CVE status is currently "Reserved" and no EPSS score has been published (GitHub Advisory, LibreNMS Advisory).

Exploitation steps

  1. Authenticate: Obtain any valid LibreNMS user account (low-privilege access is sufficient).
  2. Craft malicious URL: Construct a URL targeting the Proxmox app page with a payload in the instance or vmid GET parameter that breaks out of the JS string literal, e.g.:
    http://target/apps?app=proxmox&instance=%27%3Balert%28document.cookie%29%3B//
  3. Deliver the link: Send the crafted URL to a target authenticated LibreNMS user via phishing email, chat message, or other social engineering vector.
  4. Victim clicks the link: The victim's browser loads the page; the server reflects the unsanitized instance value into the document.title JS assignment, resulting in:
    document.title = 'Apps - Proxmox - ';alert(document.cookie);// - LibreNMS';
  5. Arbitrary script executes: The injected script runs in the victim's browser session, enabling cookie theft, session hijacking, or further malicious actions within the LibreNMS application context (GitHub Advisory, LibreNMS Advisory).

Indicators of compromise

  • Network: HTTP GET requests to /apps?app=proxmox containing URL-encoded single quotes (%27), semicolons (%3B), or JavaScript keywords (alert, document.cookie, fetch, XMLHttpRequest) in the instance or vmid parameters.
  • Logs: Web server access logs showing requests to the Proxmox app endpoint with anomalous or encoded characters in GET parameters; repeated requests from the same source IP with varying payloads (indicating probing).
  • Logs: Application logs reflecting unusual page title values containing JavaScript syntax fragments.
  • Network: Outbound requests from victim browsers to attacker-controlled domains shortly after accessing the crafted URL (indicative of cookie/data exfiltration via injected script).

Mitigation and workarounds

Upgrade LibreNMS to version 26.5.0 or later, which resolves this vulnerability by replacing string interpolation in LegacyController.php with json_encode($title) for safe JS output, and wrapping $instance and $vars['vmid'] in htmlspecialchars() in proxmox.inc.php. If immediate upgrade is not possible, restrict access to the LibreNMS web interface to trusted networks and educate users not to click unsolicited links to the application. No configuration-only workaround fully mitigates the vulnerability without code changes (LibreNMS Release, GitHub Advisory).

Community reactions

The vulnerability was reported by security researcher k1bana and patched by LibreNMS maintainer murrant as part of a broader set of XSS fixes included in the 26.5.0 release (which also addressed XSS in netmap, edituser, and legacy page titles). No significant public media coverage or notable social media discussion has been identified beyond the GitHub advisory (LibreNMS Release, LibreNMS Advisory).

Additional resources


SourceThis report was generated using AI

Related PHP vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-54721HIGH8.8
  • PHP logoPHP
  • silverstripe/userforms
NoYesAug 27, 2026
CVE-2026-55182HIGH8.6
  • PHP logoPHP
  • librenms/librenms
NoYesAug 26, 2026
CVE-2026-54718HIGH7.2
  • PHP logoPHP
  • composer://symbiote/silverstripe-advancedworkflow
NoYesAug 27, 2026
CVE-2026-45694MEDIUM5.4
  • PHP logoPHP
  • librenms/librenms
NoYesAug 26, 2026
CVE-2026-54713LOW3.7
  • PHP logoPHP
  • cakephp/queue
NoYesAug 27, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management