CVE-2021-47060

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

State
Published
Severity
7.8 High
Published
Feb 29, 2024
Updated
Aug 5, 2026
Reserved
Feb 29, 2024

Read the record on cve.org

Description

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.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux
3.16.0 MediumCVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:HCISA-ADP

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 41b2ea7a6a11e2b1a7f2c29e1675a709a6b2b98d to before 7d1bc32d6477ff96a32695ea4be8144e4513ab2dAffected
  • f65886606c2d3b562716de030706dfe1bea4ed5e to before 2a20592baff59c5351c5200ec667e1a2aa22af85Affected
  • f65886606c2d3b562716de030706dfe1bea4ed5e to before 168e82f640ed1891a700bdb43e37da354b2ab63cAffected
  • f65886606c2d3b562716de030706dfe1bea4ed5e to before 50cbad42bfea8c052b7ca590bd4126cdc898713cAffected
  • f65886606c2d3b562716de030706dfe1bea4ed5e to before 5d3c4c79384af06e3c8e25b7770b6247496b4417Affected
  • f0dfffce3f4ffd5f822568a4a6fb34c010e939d1Affected
  • 840e124f89a5127e7eb97ebf377f4b8ca745c070Affected
  • 40a023f681befd9b2862a3c16fb306a38b359ae5Affected
  • 19184bd06f488af62924ff1747614a8cb284ad63Affected
  • 68c125324b5e1d1d22805653735442923d896a1dAffected
  • 5.4.66 to before 5.4.119Affected
  • 4.4.238 to before 4.5Affected
  • 4.9.238 to before 4.10Affected
  • 4.14.200 to before 4.15Affected
  • 4.19.148 to before 4.20Affected
  • 5.8.10 to before 5.9Affected
LinuxLinux
  • 5.9Affected
  • before 5.9Not affected
  • 5.4.119 through 5.4.*Not affected
  • 5.10.37 through 5.10.*Not affected
  • 5.11.21 through 5.11.*Not affected
  • 5.12.4 through 5.12.*Not affected
  • 5.13 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.