Skip to main content

LibreNMS CVE-2025-68614

MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2025-12-23 security-advisories@github.com
5.4
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to LibreNMS API with valid token
  2. Delivery
    POST alert rule with script payload as name
  3. Exploit
    Payload stored unsanitized in database
  4. Execution
    Admin browses Alerts > Alert Rules page
  5. Impact
    bootgrid decodes entities and executes script in victim browser

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a valid LibreNMS API token authorized to create or update alert rules (POST/PUT to /api/v0/rules) - alert-rule management is an administrative capability, so attacker-side privilege is required (aligning with ZDI's PR:H). The payload only survives through the API path: the web UI already strips HTML tags from the rule name, so UI-created rules are not affected. Triggering requires a second authenticated user (typically an admin) to navigate to the Alerts > Alert Rules page (UI:R), where the jquery-bootgrid component decodes the e()/htmlentities XML character references and reintroduces the live markup into the DOM - meaning the standard output encoding is present but defeated by client-side re-decoding. Limiting factors: attacker needs privileged API access, victim must view the specific page, and only versions prior to 25.12.0 are affected.

Impact

This is a stored cross-site scripting flaw (CWE-79) in the LibreNMS Alert Rule API, best characterized as a moderate-severity, authentication-gated issue rather than a top-tier emergency. The NVD CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N = 5.4) indicates network-reachable, low-complexity exploitation but requires some level of privilege (PR:L) and victim interaction (UI:R), with limited confidentiality/integrity impact and no availability impact. The vendor/ZDI disagree materially on two metrics: ZDI scored it 4.3 using PR:H (admin), S:U (unchanged scope), and A:L - so the two authoritative sources CONFLICT on privilege level and scope. Because alert-rule management in LibreNMS is an administrative function and the vector is API-only, the ZDI PR:H assessment is arguably more realistic; verify the required privilege level against your deployment's RBAC. EPSS is 3.88% (90th percentile), which is elevated for a stored XSS but still a minority probability - the high percentile reflects the existence of public POC code more than mass automated exploitation. POC code is publicly available (ZDI/GHSA), but the CVE is NOT in CISA KEV and there is no evidence of active exploitation. Net: a legitimate patch-soon item for LibreNMS operators, not a drop-everything issue - the privilege requirement, need for victim interaction, and absence of KEV listing all cap real-world risk.

Exploit ScenarioDerived

An attacker holding a valid LibreNMS API token creates or updates an alert rule via POST/PUT to /api/v0/rules, setting the rule name to a payload such as <script>alert(1)</script>, which the API stores without the tag-stripping applied by the web UI. When another user (typically an administrator) later browses to Alerts > Alert Rules, the jquery-bootgrid table-rendering routine decodes the HTML-encoded name and injects it into the DOM, executing the attacker's script in the victim's authenticated session. A POC is publicly available via the ZDI/GitHub security advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 3.9% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 19, 2026

Stored cross-site scripting in LibreNMS versions prior to 25.12.0 allows an attacker holding a privileged API token to create or update an alert rule whose name contains HTML markup, which is then executed when another authenticated user opens the Alerts > Alert Rules page. Publicly available exploit code exists, and EPSS is 3.88% (90th percentile), but this is an authentication-gated, moderate-severity issue rather than a top-tier emergency; no CISA KEV confirmation was provided.

RemediationAI

Vendor-released patch: upgrade to LibreNMS 25.12.0, which strips tags from API-supplied alert rule names and notes and re-encodes output; the fix is in commit ebe6c79bf4ce0afeb575c1285afe3934e44001f1 and the advisory is https://github.com/librenms/librenms/security/advisories/GHSA-c89f-8g7g-59wj. If immediate upgrade is not possible, restrict and audit API tokens so only trusted administrators can POST/PUT to /api/v0/rules, revoke unused tokens, and monitor requests containing HTML tags in the name field; this reduces exposure but does not fix stored payloads, so existing rules should be reviewed and sanitized. A reverse-proxy/WAF rule blocking HTML in /api/v0/rules names is a temporary compensating control but can break legitimate automation, and a strict CSP can limit script execution but may disrupt LibreNMS inline JavaScript and jquery-bootgrid behavior.

Affected Packages

composer librenms/librenms fix: 25.12.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in composer

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

LibreNMS is a PHP/MySQL/SNMP network monitoring application; CVE-2025-68614 is CWE-79 stored XSS in the Alert Rule API. The API path calls add_edit_rule() in includes/html/api_functions.inc.php and, before the fix, stored the rule name and notes without strip_tags(), whereas the web UI already stripped HTML tags. The advisory and patch show output-side defenses in includes/html/modal/alert_rule_list.inc.php and includes/html/print-alert-rules.php using e()/htmlentities(), but jquery-bootgrid rewrites table cells and decodes XML character references, reintroducing the payload into the DOM; the fix strips tags on input and applies e(strip_tags(...)) on output. The independent assessment vector is AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N, so the attacker needs a valid API token with alert-rule management rights and the victim must navigate to the affected page.

Know when Librenms gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 4.8 MEDIUM

API alert-rule creation requires administrative privilege (PR:H), a victim must load the rules page (UI:R), and script runs in the victim's browser context affecting a different user (S:C); XSS yields limited C/I and no availability impact.

3.1 AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:H/UI:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionNVD

LibreNMS is an auto-discovering PHP/MySQL/SNMP based network monitoring tool. Prior to version 25.12.0, the Alert Rule API is vulnerable to stored cross-site scripting. Alert rules can be created or updated via LibreNMS API. The alert rule name is not properly sanitized, and can be used to inject HTML code. This issue has been patched in version 25.12.0.

Threat Intelligence Overview

EPSS Score
3.9%
Top 10% exploitable
Prevalence
Medium
popular open-source network monitoring tool, moderate IT/NOC footprint
Exploit
POC
Public exploit code exists
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 3.9%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

51
Low Medium High Critical
KEV: 0
EPSS: +4
CVSS: +27
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Affected Products (CPE)NVD

cpe:2.3:a:librenms:librenms:*:*:*:*:*:*:*:*
CVE-2019-10669 HIGH POC
7.2 Sep 09

An issue was discovered in LibreNMS through 1.47. Rated high severity (CVSS 7.2), this vulnerability is remotely exploit

CVE-2021-44278 CRITICAL POC
9.8 Dec 03

Librenms 21.11.0 is affected by a path manipulation vulnerability in includes/html/pages/device/showconfig.inc.php. Rate

CVE-2019-10665 CRITICAL POC
9.8 Sep 09

An issue was discovered in LibreNMS through 1.47. Rated critical severity (CVSS 9.8), this vulnerability is remotely exp

CVE-2026-86426 CRITICAL POC
9.2 Sep 07

Authentication bypass in the LibreNMS REST API (all versions before 26.8.0) lets unauthenticated remote attackers reach

CVE-2026-26988 CRITICAL POC
9.1 Feb 20

SQL injection in LibreNMS 25.12.0 and below. PoC and patch available.

CVE-2019-10668 CRITICAL POC
9.1 Sep 09

An issue was discovered in LibreNMS through 1.47. Rated critical severity (CVSS 9.1), this vulnerability is remotely exp

CVE-2026-26990 HIGH POC
8.8 Feb 20

SQL injection in LibreNMS versions 25.12.0 and below allows authenticated users to extract sensitive database informatio

CVE-2024-32461 HIGH POC
8.8 Apr 22

LibreNMS is an open-source, PHP/MySQL/SNMP-based network monitoring system. Rated high severity (CVSS 8.8), this vulnera

CVE-2020-15877 HIGH POC
8.8 Jul 21

An issue was discovered in LibreNMS before 1.65.1. Rated high severity (CVSS 8.8), this vulnerability is remotely exploi

CVE-2019-12463 HIGH POC
8.8 Sep 09

An issue was discovered in LibreNMS 1.50.1. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable,

CVE-2019-10671 HIGH POC
8.8 Sep 09

An issue was discovered in LibreNMS through 1.47. Rated high severity (CVSS 8.8), this vulnerability is remotely exploit

CVE-2026-80214 HIGH POC
8.6 Aug 26

Command injection in LibreNMS's Virtualization Discovery module enables authenticated administrator-level users to execu

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy