GPU VulnDB

Database/Kernel, userspace & hypervisor

libvirt: negative array length in RPC deserialization crashes libvirtd

CVSS 6.2CVE-2024-2494Kernel, userspace & hypervisorcurated

Impact

The RPC server allocates memory for arrays before the C API entry points validate that the length is non-negative, so a negative length reaches g_new0 as a huge positive value and the daemon aborts. A local unprivileged user who can reach the libvirt socket can take down libvirtd at will. On a virtualized GPU host that means losing the management plane for every guest on the node - no start, stop, migrate or vGPU reconfiguration until the daemon is back - while the running guests themselves continue. For an operator the cost is that automated draining and live migration, the cheap way to empty a GPU node, stop working exactly when they are needed.

Who can reach it

A local, unprivileged user with access to the libvirt socket on the hypervisor host. No authentication beyond socket access is required.

What to do

Update libvirt via the vendor errata (RHSA-2024:2560, RHSA-2024:3253) and restart the libvirt daemons. Restarting libvirtd does not stop running domains, so this is a daemon restart on each hypervisor rather than a node drain or reboot; expect a short window where management calls fail.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.