CVE-2024-50351: LibreNMS has a Reflected XSS ('Cross-site Scripting') in librenms/includes/functions.php
Summary A Reflected Cross-Site Scripting (XSS) vulnerability in the "section" parameter of the "logs" tab of a device allows attackers to inject arbitrary JavaScript. This vulnerability results in the execution of malicious code when a user accesses the page with a malicious "section" parameter, potentially compromising their session and enabling unauthorized actions. The issue arises from a lack of sanitization in the "reportthis()" function.
Details The "section" parameter of the "logs" tab is vulnerable to reflected XSS. An attacker can inject the following XSS payload into the "section" parameter: <script>constructor'constructor')();<%2fscript>
When the page is loaded with this malicious parameter, the script executes immediately. This vulnerability occurs due to the lack of sanitization in the "reportthis()" function. Other endpoints using this same function may also be vulnerable.
The vulnerable sink is located here: https://github.com/librenms/librenms/blob/7f2ae971c4a565b0d7345fa78b4211409f96800a/includes/functions.php#L523 https://github.com/librenms/librenms/blob/7f2ae971c4a565b0d7345fa78b4211409f96800a/includes/html/pages/device/logs.inc.php#L93
PoC 1. Inject the following payload into the "section" parameter of the "logs" tab: <script>constructor'constructor')();<%2fscript> 2. Access the page with the injected payload. 3. Observe that the injected script executes when the page is loaded.
Example URL: http://<yoururl>/device/device=1/tab=logs/section=%3Cscript%3Econstructor'constructor')();%3C%2fscript%3E/
Example Request: http GET /device/device=1/tab=logs/section=%3Cscript%3Econstructor'constructor')();%3C%2fscript%3E/ HTTP/1.1 Host: <yourhost> Cookie: <yourcookie>
Impact
This vulnerability allows attackers to execute arbitrary JavaScript in the context of a user’s session by crafting a malicious URL. The attack could lead to session hijacking, unauthorized actions, or further exploitation by injecting malicious scripts.
Other sources
LibreNMS is an open-source, PHP/MySQL/SNMP-based network monitoring system. A Reflected Cross-Site Scripting (XSS) vulnerability in the "section" parameter of the "logs" tab of a device allows attackers to inject arbitrary JavaScript. This vulnerability results in the execution of malicious code when a user accesses the page with a malicious "section" parameter, potentially compromising their session and enabling unauthorized actions. The issue arises from a lack of sanitization in the "reportthis()" function. This vulnerability is fixed in 24.10.0.
— MITRE
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2024-50351?
CVE-2024-50351 is classified as a high severity Reflected Cross-Site Scripting (XSS) vulnerability.
How do I fix CVE-2024-50351?
To fix CVE-2024-50351, upgrade to librenms/librenms version 24.10.0 or later.
What software is affected by CVE-2024-50351?
CVE-2024-50351 affects librenms/librenms versions up to 24.9.1 inclusive.
Can CVE-2024-50351 lead to remote code execution?
Yes, CVE-2024-50351 allows an attacker to execute arbitrary JavaScript code, which can lead to remote code execution.
Is user interaction required for CVE-2024-50351 exploitation?
Yes, user interaction is required as the malicious script executes when a user accesses the vulnerable page.