CVE-2024-50351: LibreNMS has a Reflected XSS ('Cross-site Scripting') in librenms/includes/functions.php

Published Nov 15, 2024
·
Updated

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

2 affected componentsFixes available
composer/librenms/librenms<=24.9.1
24.10.0
librenms librenms<24.10.0

Event History

Nov 15, 2024
Advisory Published
via GitHub·03:34 PM
CVE Published
via MITRE·03:34 PM
Data Sourced
via MITRE·03:34 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·04:15 PM
DescriptionSeverityWeakness
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2024-50351?

CVE-2024-50351 is classified as a high severity Reflected Cross-Site Scripting (XSS) vulnerability.

2

How do I fix CVE-2024-50351?

To fix CVE-2024-50351, upgrade to librenms/librenms version 24.10.0 or later.

3

What software is affected by CVE-2024-50351?

CVE-2024-50351 affects librenms/librenms versions up to 24.9.1 inclusive.

4

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.

5

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.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203