{"id":"CVE-2026-84188","aliases":["GHSA-7cj5-v4pp-v632"],"url":"https://o3.security/vulnerability/CVE-2026-84188","summary":"librenms before 26.7.0 Stored XSS via graph_descr settings","details":"### Summary\nThe `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.\n\n### CVSS\n`CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N` — **4.8 Medium**\n\n### Details\n```php\n// graphs.inc.php:194\necho LibrenmsConfig::get('graph_descr.' . $vars['type']);\n```\n\n### PoC\n```\nPUT /settings/graph_descr.device_processor\n{\"value\": \"<img src=x onerror=\\\"alert('ADV-15')\\\">\"}\n\nGET /graphs?type=device_processor\n→ <img src=x onerror=\"alert('ADV-15')\">\n```\n\n### Fix\n```php\necho htmlspecialchars(LibrenmsConfig::get('graph_descr.' . $vars['type']), ENT_QUOTES, 'UTF-8');\n```\n\n### Prerequisite\nAdmin session to set the config value.","published":"2026-09-01T11:33:53.955Z","modified":"2026-09-10T03:31:07.688491055Z","cvss":null,"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"Packagist","name":"librenms/librenms","fixedVersion":"26.7.0"}],"fix":null,"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84188.json"},{"type":"ADVISORY","url":"https://github.com/librenms/librenms/security/advisories/GHSA-7cj5-v4pp-v632"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-84188"},{"type":"ADVISORY","url":"https://www.vulncheck.com/advisories/librenms-before-26.7.0-stored-xss-via-graph-descr-settings"},{"type":"PACKAGE","url":"https://github.com/librenms/librenms"},{"type":"WEB","url":"https://github.com/librenms/librenms/releases/tag/26.7.0"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-09-10T03:31:07.688491055Z"}}