ZeroHour

CVE-2026-84194

moderate

Authenticated OS command injection in LibreNMS libvirt discovery

CVSS 4.0
8.6 high
EPSS
1%p71
Published
()
Modified
AI analysis

LibreNMS versions 23.10.0 up to (but not including) 26.2.0 contain an authenticated OS command injection flaw (CWE-78) in the libvirt virtual machine discovery code (VminfoLibvirt.php). When libvirt support is enabled (enable_libvirt=true), the device hostname is concatenated without escapeshellarg() or argument separation into shell commands (ssh and virsh list/dumpxml/domstate) that are run via exec(), so a hostname containing shell metacharacters injects arbitrary operating system commands. An authenticated admin-level user who can set a crafted device hostname gains remote code execution on the LibreNMS server in the discovery worker context. Only deployments with libvirt monitoring enabled are affected, and the issue is fixed in 26.4.0. There is no known public proof-of-concept, the flaw is not in CISA KEV, and EPSS puts 30-day exploitation probability at about 1.4% (71st percentile), so no confirmed in-the-wild exploitation is known.

What to do: Upgrade LibreNMS to 26.4.0 or later. As interim mitigation, set enable_libvirt=false (or restrict which administrators can set device hostnames) and avoid hostnames containing shell metacharacters; review existing device hostnames and discovery logs for signs of injected commands.

Affected
LibreNMS>= 23.10.0 and < 26.2.0 (fixed in 26.4.0)
Estimated exposure
moderate≈1,000–10,000 vulnerable installations (subset of the self-hosted LibreNMS base with libvirt enabled) — LibreNMS is a self-hosted open-source network monitoring system with no central install telemetry; public internet scans typically show only a few thousand exposed instances, and only deployments with libvirt discovery enabled and…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

LibreNMS versions >= 23.10.0 and 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.

Weakness
CWE-78
Vector
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.