Read the docs
TI-2026-67217 Aliases GHSA-7cj5-v4pp-v632

LibreNMS: Stored XSS via graph_descr admin config settings echoed without escaping to all authenticated users

Priority LOW 38CWE-79Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
Cross-site scripting
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from GitHub. Impact type from CWE-79.

Summary

### Summary The `graph_descr.<graphtype>` 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": "<img src=x onerror=\"alert('ADV-15')\">"} GET /graphs?type=device_processor → <img src=x onerror="alert('ADV-15')"> ``` ### Fix ```php echo htmlspecialchars(LibrenmsConfig::get('graph_descr.' . $vars['type']), ENT_QUOTES, 'UTF-8'); ``` ### Prerequisite Admin session to set the config value.

Why it matters now

Fix Fixed librenms/librenms (Packagist): 26.7.0

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
—librenms/librenms (Packagist)before 26.7.026.7.0Patch availableGHSA-7cj5-v4pp-v632
  • librenms/librenms (Packagist) Vendor— Affected before 26.7.0 Fixed in 26.7.0 Patch available GHSA-7cj5-v4pp-v632

Remediation

  • Fix · GHSA-7cj5-v4pp-v632 librenms/librenms (Packagist) Fixed in 26.7.0 Advisory →

Timeline

  1. 2026-10-03 Threatist record created from GHSA-7cj5-v4pp-v632

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences