GHSA-7cj5-v4pp-v632

Suggest an improvement
Source
https://github.com/advisories/GHSA-7cj5-v4pp-v632
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/08/GHSA-7cj5-v4pp-v632/GHSA-7cj5-v4pp-v632.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-7cj5-v4pp-v632
Aliases
Published
2026-08-18T21:17:20Z
Modified
2026-09-02T03:55:41Z
Severity
  • 4.8 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N CVSS Calculator
Summary
LibreNMS: Stored XSS via graph_descr admin config settings echoed without escaping to all authenticated users
Details

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:N4.8 Medium

Details

// 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

echo htmlspecialchars(LibrenmsConfig::get('graph_descr.' . $vars['type']), ENT_QUOTES, 'UTF-8');

Prerequisite

Admin session to set the config value.

Database specific
{
    "cwe_ids": [
        "CWE-79"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-08-18T21:17:20Z",
    "nvd_published_at": null,
    "severity": "MODERATE"
}
References

Affected packages

Packagist / librenms/librenms

Package

Name
librenms/librenms
Purl
pkg:composer/librenms/librenms

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
26.7.0

Affected versions

1.*
1.19
1.20
1.20.1
1.21
1.22
1.22.01
1.23
1.24
1.25
1.26
1.27
1.28
1.29
1.30
1.30.01
1.31
1.31.01
1.31.02
1.31.03
1.32
1.32.01
1.33
1.33.01
1.34
1.35
1.36
1.36.01
1.37
1.38
1.39
1.40
1.41
1.42
1.42.01
1.43
1.44
1.45
1.46
1.47
1.48
1.48.1
1.49
1.50
1.50.1
1.51
1.52
1.53
1.53.1
1.54
1.55
1.56
1.57
1.58
1.58.1
1.59
1.60
1.61
1.62
1.62.1
1.62.2
1.63
1.64
1.64.1
1.65
1.65.1
1.66
1.67
1.68
1.69
1.70.0
1.70.1
21.*
21.1.0
21.2.0
21.3.0
21.4.0
21.5.0
21.5.1
21.6.0
21.7.0
21.8.0
21.9.0
21.9.1
21.10.0
21.10.1
21.10.2
21.11.0
21.12.0
21.12.1
22.*
22.1.0
22.2.0
22.2.1
22.2.2
22.3.0
22.4.0
22.4.1
22.5.0
22.6.0
22.7.0
22.8.0
22.9.0
22.10.0
22.11.0
22.12.0
23.*
23.1.0
23.1.1
23.2.0
23.4.0
23.4.1
23.5.0
23.6.0
23.7.0
23.8.0
23.8.1
23.8.2
23.9.0
23.9.1
23.10.0
23.11.0
24.*
24.1.0
24.2.0
24.3.0
24.4.0
24.4.1
24.5.0
24.6.0
24.7.0
24.8.0
24.8.1
24.9.0
24.9.1
24.10.0
24.10.1
24.11.0
24.12.0
25.*
25.1.0
25.2.0
25.3.0
25.4.0
25.5.0
25.6.0
25.7.0
25.8.0
25.9.0
25.9.1
25.10.0
25.11.0
25.12.0
26.*
26.1.0
26.1.1
26.2.0
26.3.0
26.3.1
26.4.0
26.4.1
26.5.0
26.5.1
26.6.0
26.6.1

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/08/GHSA-7cj5-v4pp-v632/GHSA-7cj5-v4pp-v632.json"