LibreNMS
CVE-2025-68614
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to LibreNMS API with valid token
-
DeliveryPOST alert rule with script payload as name
-
ExploitPayload stored unsanitized in database
-
ExecutionAdmin browses Alerts > Alert Rules page
-
Impactbootgrid 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
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.
Primary rating from NVD.
CVSS VectorNVD
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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
An issue was discovered in LibreNMS through 1.47. Rated high severity (CVSS 7.2), this vulnerability is remotely exploit
Librenms 21.11.0 is affected by a path manipulation vulnerability in includes/html/pages/device/showconfig.inc.php. Rate
An issue was discovered in LibreNMS through 1.47. Rated critical severity (CVSS 9.8), this vulnerability is remotely exp
Authentication bypass in the LibreNMS REST API (all versions before 26.8.0) lets unauthenticated remote attackers reach
SQL injection in LibreNMS 25.12.0 and below. PoC and patch available.
An issue was discovered in LibreNMS through 1.47. Rated critical severity (CVSS 9.1), this vulnerability is remotely exp
SQL injection in LibreNMS versions 25.12.0 and below allows authenticated users to extract sensitive database informatio
LibreNMS is an open-source, PHP/MySQL/SNMP-based network monitoring system. Rated high severity (CVSS 8.8), this vulnera
An issue was discovered in LibreNMS before 1.65.1. Rated high severity (CVSS 8.8), this vulnerability is remotely exploi
An issue was discovered in LibreNMS 1.50.1. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable,
An issue was discovered in LibreNMS through 1.47. Rated high severity (CVSS 8.8), this vulnerability is remotely exploit
Command injection in LibreNMS's Virtualization Discovery module enables authenticated administrator-level users to execu
NVD
CVE.org
EPSS
GitHub
Exploit-DB