CVE-2021-3308 in Xeninfo

Summary

by MITRE • 01/26/2021

An issue was discovered in Xen 4.12.3 through 4.12.4 and 4.13.1 through 4.14.x. An x86 HVM guest with PCI pass through devices can force the allocation of all IDT vectors on the system by rebooting itself with MSI or MSI-X capabilities enabled and entries setup. Such reboots will leak any vectors used by the MSI(-X) entries that the guest might had enabled, and hence will lead to vector exhaustion on the system, not allowing further PCI pass through devices to work properly. HVM guests with PCI pass through devices can mount a Denial of Service (DoS) attack affecting the pass through of PCI devices to other guests or the hardware domain. In the latter case, this would affect the entire host.

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 02/20/2021

This vulnerability exists in the Xen hypervisor version 4.12.3 through 4.12.4 and 4.13.1 through 4.14.x, representing a critical denial of service flaw that impacts x86 HVM guests utilizing PCI pass through capabilities. The issue stems from improper handling of IDT (Interrupt Descriptor Table) vector allocation during guest reboot scenarios, where malicious or compromised guests can systematically exhaust available interrupt vectors on the host system. The vulnerability specifically affects systems where guests have MSI (Message Signaled Interrupts) or MSI-X capabilities enabled, creating a scenario where repeated reboots cause vector leakage that accumulates over time.

The technical flaw manifests when an x86 HVM guest with PCI pass through devices performs a reboot while maintaining MSI or MSI-X enabled entries. During this process, the hypervisor fails to properly release or recycle the IDT vectors that were allocated for the MSI(-X) entries, causing these vectors to become permanently consumed. This vector leakage occurs because the hypervisor does not correctly manage the lifecycle of interrupt vectors associated with PCI pass through devices, particularly when guests undergo reboot operations that should normally clean up these resources. The vulnerability is categorized under CWE-399 as a Resource Management Error, specifically related to insufficient cleanup or release of system resources.

The operational impact of this vulnerability is severe as it enables a guest operating system to mount a denial of service attack against the entire hypervisor infrastructure. When IDT vectors become exhausted, the system cannot properly allocate new vectors for PCI pass through devices, effectively preventing new or existing devices from functioning correctly. This affects not only the specific guest that initiated the attack but can also compromise the entire host system, as the hardware domain and other virtual machines may lose access to critical PCI devices. The attack is particularly insidious because it requires minimal privileges - any guest with access to reboot functionality and PCI pass through capabilities can trigger this condition, making it a significant threat in multi-tenant cloud environments where guest isolation is paramount.

Mitigation strategies should focus on implementing proper resource cleanup mechanisms within the hypervisor to ensure that IDT vectors are properly released during guest reboots and shutdown operations. System administrators should consider applying the latest Xen security patches that address this specific vector leak issue, which typically involve modifications to the PCI pass through subsystem to properly manage interrupt vector allocation and deallocation. Additionally, monitoring systems should be implemented to detect unusual patterns of vector consumption that might indicate this vulnerability being exploited, and administrative controls should be enforced to limit guest reboot capabilities where possible. This vulnerability aligns with ATT&CK technique T1499.004 which covers "Endpoint Denial of Service" and represents a classic case of resource exhaustion attacks that can severely impact system availability and integrity. Organizations should also consider implementing hypervisor-level controls to limit the number of MSI(-X) entries that can be configured per guest, providing an additional layer of protection against such vector exhaustion scenarios.

Reservation

01/26/2021

Disclosure

01/26/2021

Moderation

accepted

CPE

ready

EPSS

0.00417

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!