A heap buffer overflow was found in the Message Signaled Interrupt (MSI-X) device support of QEMU. The overflow could occur due to an out-of-bounds write of the MSIX table while performing MSI-X mmio operations in msix_table_mmio_write(). A guest user may exploit this flaw to crash the QEMU process on the host, resulting in a denial of service condition. Upstream fix: https://git.qemu.org/?p=qemu.git;a=commit;h=4bfb024bc76973d40a359476dc0291f46e435442
Acknowledgments: Name: Alexander Bulekov
Created qemu tracking bugs for this issue: Affects: fedora-all [bug 1904126]
In reply to comment #0: > A heap buffer overflow was found in the Message Signaled Interrupt (MSI-X) > device support of QEMU. The overflow could occur due to an out-of-bounds > write of the MSIX table while performing MSI-X mmio operations in > msix_table_mmio_write(). A guest user may exploit this flaw to crash the > QEMU process on the host, resulting in a denial of service condition. The root cause of this flaw is an error in the memory management API of QEMU during the initialization of a memory region cache. Specifically, the address_space_cache_init() function in softmmu/physmem.c did not properly compute the length field 'cache->len'. This could lead to subsequent out-of-bounds accesses to the cached memory region section (e.g., MSI-X table).
Statement: This flaw did not affect the versions of `qemu-kvm` as shipped with Red Hat Enterprise Linux 6 and 7, as they did not include support for the MemoryRegionCache structure.
External References: https://www.openwall.com/lists/oss-security/2020/12/16/6
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s): https://access.redhat.com/security/cve/cve-2020-27821
This issue has been addressed in the following products: Red Hat Enterprise Linux 8 Via RHSA-2021:1762 https://access.redhat.com/errata/RHSA-2021:1762