Cloudanix VulnDB

CVE-2014-3657

None

CVSS

—

EPSS

2.8%

Published

Oct 6, 2014

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A bug in virtualization software lets an attacker send one bad request that freezes the service and stops it from managing virtual machines until it is restarted.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The virDomainListPopulate function fails to release a domain list lock when virConnectListAllDomains receives a NULL second parameter, leaving the lock held and causing a permanent deadlock in the libvirt daemon.

Why it matters to the business

Virtualization management services become unresponsive, blocking VM lifecycle operations, migrations, and monitoring across any systems that rely on the affected libvirt instance until the process is restarted.

How an attack unfolds

An attacker with network reachability to a libvirt daemon issues the virConnectListAllDomains API call supplying NULL for the domain list pointer; the missing unlock in virDomainListPopulate causes the global lock to remain held, deadlocking subsequent API consumers and the management stack.

How to fix it

Upgrade libvirt to version 1.2.9 or later; if immediate upgrade is not possible, restrict network access to the libvirt socket or daemon and restart the libvirtd process when deadlock symptoms appear.

How to confirm the fix worked

After patching, confirm the installed libvirt version is at least 1.2.9, then exercise virConnectListAllDomains with a NULL list pointer in a test environment and verify the daemon continues to service subsequent calls without deadlock.

Typical attack path

  1. Obtain network access to the libvirt daemon port
  2. Authenticate or exploit an exposed unauthenticated libvirt socket
  3. Invoke virConnectListAllDomains with a NULL second argument
  4. Observe that the daemon no longer processes further API requests
  5. Maintain the condition to sustain denial of service

How to detect it

Review libvirt daemon logs for repeated or stalled domain listing operations, monitor for sustained high CPU or unresponsive API behavior, and correlate with any external connections attempting virConnectListAllDomains calls around the time of service degradation.

What your security team should do

  • Prioritize upgrade of all libvirt installations to 1.2.9 or newer
  • Restrict libvirt daemon exposure to only trusted management networks
  • Implement process monitoring and automatic restart for libvirtd on deadlock detection
  • Review and tighten API authentication and authorization settings

The record

The virDomainListPopulate function in conf/domain_conf.c in libvirt before 1.2.9 does not clean up the lock on the list of domains, which allows remote attackers to cause a denial of service (deadlock) via a NULL value in the second parameter in the virConnectListAllDomains API command.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 libvirt 0 1.2.9-1
Debian:12 libvirt 0 1.2.9-1
Debian:13 libvirt 0 1.2.9-1
Mageia:3 libvirt 0 1.0.2-8.6.mga3
Mageia:4 libvirt 0 1.2.1-1.2.mga4
Red Hat:enterprise_linux:6::client libvirt 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::client libvirt-client 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::client libvirt-debuginfo 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::client libvirt-devel 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::client libvirt-lock-sanlock 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::client libvirt-python 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::computenode libvirt 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::computenode libvirt-client 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::computenode libvirt-debuginfo 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::computenode libvirt-devel 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::computenode libvirt-lock-sanlock 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::computenode libvirt-python 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::server libvirt 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::server libvirt-client 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::server libvirt-debuginfo 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::server libvirt-devel 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::server libvirt-lock-sanlock 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::server libvirt-python 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::workstation libvirt 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::workstation libvirt-client 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::workstation libvirt-debuginfo 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::workstation libvirt-devel 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::workstation libvirt-lock-sanlock 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:6::workstation libvirt-python 0 0:0.10.2-46.el6_6.2
Red Hat:enterprise_linux:7::client libvirt 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-client 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-config-network 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-config-nwfilter 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-driver-interface 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-driver-lxc 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-driver-network 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-driver-nodedev 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-driver-nwfilter 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-driver-qemu 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-driver-secret 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-driver-storage 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-kvm 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-daemon-lxc 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-debuginfo 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-devel 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-docs 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-lock-sanlock 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-login-shell 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::client libvirt-python 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-client 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-config-network 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-config-nwfilter 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-driver-interface 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-driver-lxc 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-driver-network 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-driver-nodedev 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-driver-nwfilter 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-driver-qemu 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-driver-secret 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-driver-storage 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-kvm 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-daemon-lxc 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-debuginfo 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-devel 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-docs 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-lock-sanlock 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-login-shell 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::computenode libvirt-python 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-client 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-config-network 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-config-nwfilter 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-driver-interface 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-driver-lxc 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-driver-network 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-driver-nodedev 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-driver-nwfilter 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-driver-qemu 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-driver-secret 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-driver-storage 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-kvm 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-daemon-lxc 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-debuginfo 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-devel 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-docs 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-lock-sanlock 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-login-shell 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::server libvirt-python 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-client 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-config-network 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-config-nwfilter 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-driver-interface 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-driver-lxc 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-driver-network 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-driver-nodedev 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-driver-nwfilter 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-driver-qemu 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-driver-secret 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-driver-storage 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-kvm 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-daemon-lxc 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-debuginfo 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-devel 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-docs 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-lock-sanlock 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-login-shell 0 0:1.1.1-29.el7_0.3
Red Hat:enterprise_linux:7::workstation libvirt-python 0 0:1.1.1-29.el7_0.3
SUSE:Linux Enterprise Desktop 12 libvirt 0 1.2.5-21.1
SUSE:Linux Enterprise Server 12 libvirt 0 1.2.5-21.1
SUSE:Linux Enterprise Server for SAP Applications 12 libvirt 0 1.2.5-21.1
SUSE:Linux Enterprise Software Development Kit 12 libvirt 0 1.2.5-21.1
SUSE:Linux Enterprise Workstation Extension 12 libvirt 0 1.2.5-21.1
Ubuntu:14.04:LTS libvirt 0 1.2.2-0ubuntu13.1.7
openSUSE:Tumbleweed libvirt 0 2.5.0-1.1

Related vulnerabilities