LibreNMS Display Name Stored Cross-site Scripting vulnerability
🔗 CVE IDs covered (1)
📋 Description
Description:
XSS on the parameters (Replace $DEVICE_ID with your specific $DEVICE_ID value):/device/$DEVICE_ID/edit -> param: display
of Librenms versions 24.9.0, 24.10.0, and 24.10.1 (https://github.com/librenms/librenms) allows remote attackers to inject malicious scripts. When a user views or interacts with the page displaying the data, the malicious script executes immediately, leading to potential unauthorized actions or data exposure.
Proof of Concept:
-
Add a new device through the LibreNMS interface.
-
Edit the newly created device by going to the "Device Settings" section.
-
In the "Display Name" field, enter the following payload:
"><script>alert(1)</script>. -
Save the changes.
-
The XSS payload triggers when accessing the "/apps" path (if an application was previously added).
Additional PoC:
-
In the "Display Name" field, enter the following payload:
"><img src onerror="alert(1)">. -
The XSS vulnerability is triggered when accessing the "/ports" path, and the payload executes when hovering over the modified value in the "Port" field.
-
on
/device/$DEVICE_ID/ports/arppath: -
on
/device/$DEVICE_ID/logspath: -
on
/search/search=arp/path:
Impact:
Execution of Malicious Code
🎯 Affected products1
- composer/librenms/librenms:>= 24.9.0, < 24.10.1