Skip to main content

libnbd CVE-2025-14946

MEDIUM
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
2025-12-19 secalert@redhat.com
4.8
CVSS 3.1 · Vendor: redhat
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious NBD URI with '-o' hostname
  2. Delivery
    Victim opens URI in libnbd
  3. Exploit
    ssh misparses hostname as option
  4. Execution
    Inject ProxyCommand/ssh option
  5. Impact
    Execute arbitrary code as libnbd user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Argument sanitization
Exploitation Conditions

Exploitation requires an application or user to pass an attacker-controlled NBD URI to libnbd for opening - specifically a URI whose hostname begins with '-o' so that ssh interprets it as a command-line option instead of a host, which only matters for the SSH transport (nbd+ssh:// style connections). Limiting factors: the base vector is local (AV:L) with required user interaction (UI:R), meaning a victim with a libnbd-using process must be convinced to open the crafted URI; code execution runs only with the privileges of the (possibly unprivileged) user running libnbd, and the fix ships in libnbd 1.24.1. Practical reach increases only where an application automatically opens untrusted URIs received over the network.

Impact

This is a genuine argument-injection flaw (CWE-88) in libnbd that the vendor rates only 4.8 (Medium), and the aggregate signals support treating it as low-to-medium operational priority rather than an emergency. The provided CVSS vector CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:L already encodes strong limiting factors: local attack vector, required user interaction, and low privileges, with impacts scored only Low across CIA. EPSS is very low at 0.14% (3rd percentile), there is no CISA KEV listing, and no public proof-of-concept is referenced - so exploitation status is 'no public exploit identified at time of analysis.' The one point of internal tension is impact: the description states the flaw 'could lead to arbitrary code execution with the privileges of the user running libnbd,' which is normally full compromise of that user's context (C:H/I:H/A:H), yet Red Hat scored it C:L/I:L/A:L - a conservative rating that arguably understates technical impact; verify impact scoping with the vendor. A second ambiguity is the attack vector: the flaw triggers when libnbd is 'convinced' to open a crafted URI, and if an application feeds attacker-controlled NBD URIs received over the network, the practical reachability edges toward AV:N even though the base vector says AV:L. Net: real, patchable code-quality bug in a niche virtualization library, low probability of widespread exploitation, worth patching on a normal cycle.

Exploit ScenarioDerived

An attacker supplies a malicious NBD URI whose hostname begins with '-o' (for example via an nbd+ssh:// connection string) to an application or user that passes untrusted URIs to libnbd. When libnbd builds the SSH command line, the '-o...' hostname is parsed by ssh as an option rather than a host, letting the attacker inject ssh options (e.g., ProxyCommand) that execute arbitrary commands with the privileges of the user running libnbd. No public exploit code is referenced, and the CVSS vector requires local invocation plus user interaction (UI:R), so delivery depends on convincing a victim to open the crafted URI.

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

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

Alert me

AnalysisAIv1 – Sep 30, 2026

Argument injection in libnbd's SSH transport allows an attacker who persuades a libnbd-using application or user to open a crafted NBD URI to run arbitrary commands with the privileges of the user running libnbd. The flaw affects libnbd builds that support nbd+ssh:// style connections and triggers when the hostname component of the URI begins with '-o', so the spawned ssh process interprets it as a command-line option instead of a host. There is no public exploit identified at time of analysis and no CISA KEV listing; exploitation remains gated by user interaction (a victim process must be induced to open the crafted URI), EPSS is low at 0.14% (3rd percentile), and Red Hat scores it 4.8 while our independent assessment applies a higher-impact vector (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H) given the full confidentiality, integrity and availability impact of command execution.

RemediationAI

Apply the vendor-released patch by upgrading to libnbd 1.24.1 or later; the upgrade is documented in the upstream release notes at https://libguestfs.org/libnbd-release-notes-1.24.1.html#Security, and Red Hat's advisory at https://access.redhat.com/security/cve/CVE-2025-14946 should be consulted for distribution-specific package versions. If upgrade must be deferred, the most effective compensating control is to prevent untrusted URI input from reaching the SSH transport: do not pass user- or network-supplied NBD URIs into libnbd-consuming tools, and where that is unavoidable, validate the host component and reject any value beginning with '-' (the trade-off is that legitimately dash-prefixed hostnames, which are essentially invalid, must be blocked, and validation must live in every caller because libnbd itself is unfixed). Replacing nbd+ssh:// connections with the Unix-socket or plain TCP transport removes the ssh argv path entirely, at the cost of losing SSH's transport encryption and host authentication, so this should only be done on trusted local networks or fronted with an alternative encrypted channel. Restricting which processes may spawn ssh (for example via allow-listing the calling service) and disabling automatic opening of remote URI links in GUI or web front-ends to libnbd consumers reduces the user-interaction vector, though none of these workarounds match the completeness of the 1.24.1 upgrade.

Affected ProductsAI

libnbd before 1.24.1 is affected, per the upstream release notes at https://libguestfs.org/libnbd-release-notes-1.24.1.html#Security, which list the fix under the 1.24.1 security section; the Red Hat tracking entries are https://access.redhat.com/security/cve/CVE-2025-14946 and https://bugzilla.redhat.com/show_bug.cgi?id=2423789. No CPE strings were supplied in the source data, so product matching must be done on package name plus version (libnbd < 1.24.1) rather than through CPE enumeration. Any downstream consumer that embeds libnbd and opens attacker-influenced URIs is exposed in practice, including libguestfs/virt-v2v workflows, nbd-oriented command line tools, and any custom application that accepts a user- or network-supplied NBD URI and has SSH transport compiled in; systems that never use the nbd+ssh:// transport, or that never open URIs from untrusted sources, are not practically reachable.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

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

Technical ContextAI · show details

libnbd is the Network Block Device (NBD) client library used by libguestfs, virt-v2v, various virt tooling and qemu-related CLI utilities; its URI grammar (e.g. nbd+ssh://user@host/export) selects a transport and, for SSH, the library shells out to the ssh binary. The root cause is CWE-88, improper neutralization of argument delimiters: the hostname parsed out of the URI is passed into the ssh argv without a '--' end-of-options separator and without validating that it cannot be mistaken for a flag. Because ssh accepts '-o' with an arbitrary option string, a host such as '-oProxyCommand=<payload>' causes ssh to load an attacker-supplied configuration directive, and ProxyCommand/known-hosts-style directives execute shell commands through /bin/sh before any connection is attempted. The issue is therefore limited to the SSH transport path; TCP, Unix-socket and TLS transports parse URIs differently and are not affected by this specific injection. Vendor and independent CVSS vectors differ mainly on privileges required (PR:L vs PR:N) and impact (C:L/I:L/A:L vs C:H/I:H/A:H), but both agree that local vector (AV:L) and required user interaction (UI:R) constrain reachability.

Know when Libnbd 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

Vendor (redhat) PRIMARY 4.8 MEDIUM
AV:L/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:L
vuln.today AI 7.8 HIGH

Attacker needs no privileges to craft the URI (PR:N) but a local libnbd user must open it (AV:L/UI:R); arbitrary code execution in that user's context justifies C:H/I:H/A:H, higher than the vendor's L/L/L.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE 7.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
Red Hat 4.8 MEDIUM

Primary rating from Vendor (redhat).

CVSS VectorVendor: redhat

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
Low

DescriptionCVE.org

A flaw was found in libnbd. A malicious actor could exploit this by convincing libnbd to open a specially crafted Uniform Resource Identifier (URI). This vulnerability arises because non-standard hostnames starting with '-o' are incorrectly interpreted as arguments to the Secure Shell (SSH) process, rather than as hostnames. This could lead to arbitrary code execution with the privileges of the user running libnbd.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
Niche NBD client library used mainly in virtualization/libguestfs tooling
Data Quality
3 sources
Confidence: Low

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 No
EPSS 0.1%
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
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Server 16.1 Fixed
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Micro 5.3 Not-Affected
SUSE Linux Enterprise Micro 5.4 Not-Affected
SUSE Linux Enterprise Micro 5.5 Not-Affected

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