vfio: access to disabled MMIO space of some devices may lead to DoS scenario
CVE: CVE-2020-12888
Component: Kernel
CWE: CWE-248
Severity: Important
CVSS v3: 4.8/AV:L/AC:H/PR:H/UI:N/S:C/C:N/I:N/A:H
Release date: 2020-05-14T00:00:00+00:00

A flaw was found in the Linux kernel, where it allows userspace processes, for example, a guest VM, to directly access h/w devices via its VFIO driver modules. The VFIO modules allow users to enable or disable access to the devices' MMIO memory address spaces. If a user attempts to access the read/write devices' MMIO address space when it is disabled, some h/w devices issue an interrupt to the CPU to indicate a fatal error condition, crashing the system. This flaw allows a guest user or process to crash the host system resulting in a denial of service.

Statement: This issue does not affect the versions of the kernel package as shipped with Red Hat Enterprise Linux 5, 6 and Red Hat Enterprise MRG 2.
This issue affects the versions of the kernel package as shipped with Red Hat Enterprise Linux 7 and 8. Future kernel updates for Red Hat Enterprise Linux 7 and 8 may address this issue.

A regression of CVE-2020-12888 has been reintroduced in RHEL 9.4–9.6 due to the backport of the fork: defer linking file vma patch (related to CVE-2024-27022). This flaw allows a privileged VFIO userspace process to retain stale MMIO mappings after a fork(), leading to host crashes if the child process accesses the device after MMIO has been disabled. While the bug was transient in upstream (v6.9 only), it remains present in multiple RHEL9 releases. Only users with high privileges and access to a VFIO-assigned device can exploit this, and no impact is observed in standard QEMU or DPDK configurations. Regarding this regression, the status of RHEL-9 fixes (fixed for 9.7 and 9.6 for the 21 Jul 2025 and pending for 9.4):
RHEL-9.7: RHEL-73613 (kernel-5.14.0-578.el9)
RHEL-9.6.z: RHEL-85623 (kernel-5.14.0-570.26.1.el9_6)
RHEL-9.5.z: N/A
RHEL-9.4.z: RHEL-85621 (under development)
The 9.7 and 9.6.z fixes backport the upstream solution while the 9.4.z
fix is pursuing a RHEL specific fix to reduce the scope and risk.
RHEL-10 is not affected, because branched at 6.12.

Remediation:
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.
For details on how to apply this update, which includes the changes described in this advisory, refer to:

https://access.redhat.com/articles/11258

The system must be rebooted for this update to take effect.