Skip to main content

LibreNMS CVE-2026-45694

MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-12 https://github.com/librenms/librenms GHSA-jmqm-f8q4-v7wx
5.4
CVSS 3.1 · Vendor: https://github.com/librenms/librenms
Share

Severity by source

Vendor (https://github.com/librenms/librenms) PRIMARY
5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI
5.4 MEDIUM

Network-accessible endpoint (AV:N), attacker requires a valid account (PR:L), victim must click crafted link (UI:R), browser context escape constitutes scope change (S:C), no availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (https://github.com/librenms/librenms).

CVSS VectorVendor: https://github.com/librenms/librenms

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Source Code Evidence Fetched
Aug 12, 2026 - 16:10 vuln.today
Analysis Generated
Aug 12, 2026 - 16:10 vuln.today

DescriptionCVE.org

Summary

LegacyController.php:75 writes the page title into a document.title JS assignment using string interpolation. apps/proxmox.inc.php pushes $vars['instance'] and $vars['vmid'] (GET params, only strip_tags() applied) directly into $pagetitle. A single quote terminates the JS string, executing arbitrary script.

Details

php
// LegacyController.php:75
$html .= "<script>\ndocument.title = '$title';\n</script>";

// proxmox.inc.php:38,42
$pagetitle[] = $instance;     // GET ?instance=
$pagetitle[] = $vars['vmid']; // GET ?vmid=

PoC

http://target/apps?app=proxmox&instance=%27%3Balert%28document.cookie%29%3B//

Confirmed in response:
document.title = 'Apps - Proxmox - ';alert(document.cookie);// - LibreNMS';

Fix

php
// LegacyController.php:75
$html .= "<script>\ndocument.title = " . json_encode($title) . ";\n</script>";

Also wrap $instance and $vars['vmid'] in htmlspecialchars() in proxmox.inc.php.

Prerequisite

Any authenticated session. Victim must follow a crafted link.

AnalysisAI

Reflected XSS in LibreNMS 26.4.0 and earlier allows an authenticated attacker to inject arbitrary JavaScript into any victim's browser session by embedding a payload in the GET parameters instance or vmid of the Proxmox application module. The root cause is unsafe PHP string interpolation of unsanitized GET input directly into a document.title JavaScript assignment in LegacyController.php:75, bypassed with a simple single-quote injection. A working proof-of-concept demonstrating cookie exfiltration is publicly documented in the GitHub security advisory GHSA-jmqm-f8q4-v7wx; this CVE is not in CISA KEV.

Technical ContextAI

LibreNMS is a PHP-based open-source network monitoring system (composer package librenms/librenms, CPE: pkg:composer/librenms_librenms). The vulnerability class is CWE-79 (Improper Neutralization of Input During Web Page Generation - Reflected XSS). In LegacyController.php at line 75, the shared page-title rendering path outputs: $html .= "<script>\ndocument.title = '$title';\n</script>"; - placing the title value inside a single-quoted JavaScript string with no JS-context escaping. The Proxmox application integration in apps/proxmox.inc.php (lines 38 and 42) populates $pagetitle with the raw values of the GET parameters ?instance= and ?vmid=, applying only strip_tags() - which strips HTML tags but preserves single quotes, semicolons, and all other JavaScript metacharacters. Because these values flow into $title and then into the JavaScript string context, a single quote in the input terminates the JS string literal and allows arbitrary script injection. The correct fix is to use json_encode() for the JavaScript context (ensuring proper escaping of all string metacharacters) and htmlspecialchars() for HTML attribute contexts in proxmox.inc.php.

RemediationAI

Upgrade to LibreNMS 26.5.0, released 2026-05-18, which resolves the issue by replacing the unsafe string interpolation in LegacyController.php:75 with json_encode($title) for proper JavaScript-context escaping, and by adding htmlspecialchars() around $instance and $vars['vmid'] in proxmox.inc.php. The release is available at https://github.com/librenms/librenms/releases/tag/26.5.0. If immediate upgrade is not feasible, block access to the Proxmox application endpoint (/apps?app=proxmox) at the web server or reverse-proxy layer via ACL rule; this eliminates the attack surface for this specific module at the cost of disabling Proxmox monitoring capability until the patch is applied. Additionally, restricting LibreNMS web access to a trusted internal network or VPN reduces the social engineering vector by limiting who can deliver crafted URLs to authenticated users.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

Share

CVE-2026-45694 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy