GitHub Advisoryadvisory · Packagist

GHSA-7cj5-v4pp-v632 LibreNMS: Stored XSS via graph_descr admin config settings echoed without escaping to all authenticated users

MEDIUM Published 2026-08-18 Modified 2026-08-18 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

References