GitHub Advisoryadvisory · Packagist
GHSA-7cj5-v4pp-v632 LibreNMS: Stored XSS via graph_descr admin config settings echoed without escaping to all authenticated users
MEDIUM
Official page ↗
- Ecosystem
- Packagist
- Packages
- librenms/librenms
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
- Weaknesses
- CWE-79
- Reviewed
- 2026-08-18
Affected packages
• Packagist librenms/librenms: < 26.7.0 → fixed in 26.7.0
Description
Summary
The `graph_descr.` family of settings is echoed verbatim without `htmlspecialchars()` in `includes/html/pages/graphs.inc.php:194`. Any admin can store a malicious HTML payload that executes in every authenticated user's browser viewing that graph type.
CVSS
`CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N` — 4.8 Medium
Details
```php
// graphs.inc.php:194
echo LibrenmsConfig::get('graph_descr.' . $vars['type']);
```
PoC
```
PUT /settings/graph_descr.device_processor
{"value": ""}
GET /graphs?type=device_processor
→
```
Fix
```php
echo htmlspecialchars(LibrenmsConfig::get('graph_descr.' . $vars['type']), ENT_QUOTES, 'UTF-8');
```
Prerequisite
Admin session to set the config value.
Related
Weakness · CWE (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness