// For flags

CVE-2021-47060

KVM: Stop looking for coalesced MMIO zones if the bus is destroyed

Severity Score

6.0
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track
*SSVC
Descriptions

In the Linux kernel, the following vulnerability has been resolved:

KVM: Stop looking for coalesced MMIO zones if the bus is destroyed

Abort the walk of coalesced MMIO zones if kvm_io_bus_unregister_dev()
fails to allocate memory for the new instance of the bus. If it can't
instantiate a new bus, unregister_dev() destroys all devices _except_ the
target device. But, it doesn't tell the caller that it obliterated the
bus and invoked the destructor for all devices that were on the bus. In
the coalesced MMIO case, this can result in a deleted list entry
dereference due to attempting to continue iterating on coalesced_zones
after future entries (in the walk) have been deleted.

Opportunistically add curly braces to the for-loop, which encompasses
many lines but sneaks by without braces due to the guts being a single
if statement.

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: KVM: deja de buscar zonas MMIO fusionadas si el bus se destruye. Cancela el recorrido de las zonas MMIO fusionadas si kvm_io_bus_unregister_dev() no puede asignar memoria para la nueva instancia del bus. Si no puede crear una instancia de un nuevo bus, unregister_dev() destruye todos los dispositivos _excepto_ el dispositivo de destino. Pero no le dice a la persona que llama que destruyó el bus e invocó el destructor para todos los dispositivos que estaban en el bus. En el caso de MMIO fusionado, esto puede resultar en una desreferencia de entrada de lista eliminada debido al intento de continuar iterando en coalesced_zones después de que se hayan eliminado entradas futuras (en el recorrido). De manera oportunista, agregue llaves al bucle for, que abarca muchas líneas pero se escapa sin llaves debido a que el valor es una sola declaración if.

*Credits: N/A
CVSS Scores
Attack Vector
Local
Attack Complexity
Low
Privileges Required
High
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
High
* Common Vulnerability Scoring System
SSVC
  • Decision:Track
Exploitation
None
Automatable
No
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2024-02-29 CVE Reserved
  • 2024-02-29 CVE Published
  • 2024-03-01 EPSS Updated
  • 2024-12-19 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 5.4.66 < 5.4.119
Search vendor "Linux" for product "Linux Kernel" and version " >= 5.4.66 < 5.4.119"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 5.9 < 5.10.37
Search vendor "Linux" for product "Linux Kernel" and version " >= 5.9 < 5.10.37"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 5.9 < 5.11.21
Search vendor "Linux" for product "Linux Kernel" and version " >= 5.9 < 5.11.21"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 5.9 < 5.12.4
Search vendor "Linux" for product "Linux Kernel" and version " >= 5.9 < 5.12.4"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 5.9 < 5.13
Search vendor "Linux" for product "Linux Kernel" and version " >= 5.9 < 5.13"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
4.4.238
Search vendor "Linux" for product "Linux Kernel" and version "4.4.238"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
4.9.238
Search vendor "Linux" for product "Linux Kernel" and version "4.9.238"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
4.14.200
Search vendor "Linux" for product "Linux Kernel" and version "4.14.200"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
4.19.148
Search vendor "Linux" for product "Linux Kernel" and version "4.19.148"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
5.8.10
Search vendor "Linux" for product "Linux Kernel" and version "5.8.10"
en
Affected