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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
41b2ea7a6a11e2b1a7f2c29e1675a709a6b2b98d to < 7d1bc32d6477ff96a32695ea4be8144e4513ab2daffectedf65886606c2d3b562716de030706dfe1bea4ed5e to < 2a20592baff59c5351c5200ec667e1a2aa22af85affectedf65886606c2d3b562716de030706dfe1bea4ed5e to < 168e82f640ed1891a700bdb43e37da354b2ab63caffectedf65886606c2d3b562716de030706dfe1bea4ed5e to < 50cbad42bfea8c052b7ca590bd4126cdc898713caffectedf65886606c2d3b562716de030706dfe1bea4ed5e to < 5d3c4c79384af06e3c8e25b7770b6247496b4417affectedf0dfffce3f4ffd5f822568a4a6fb34c010e939d1affected840e124f89a5127e7eb97ebf377f4b8ca745c070affected40a023f681befd9b2862a3c16fb306a38b359ae5affected19184bd06f488af62924ff1747614a8cb284ad63affected68c125324b5e1d1d22805653735442923d896a1daffected5.4.66 to < 5.4.119affected4.4.238 to < 4.5affected4.9.238 to < 4.10affected4.14.200 to < 4.15affected4.19.148 to < 4.20affected5.8.10 to < 5.9affected
Linux Linux
Default version status: affected
5.9affected0 to < 5.9unaffected5.4.119 to ≤ 5.4.*unaffected5.10.37 to ≤ 5.10.*unaffected5.11.21 to ≤ 5.11.*unaffected5.12.4 to ≤ 5.12.*unaffected5.13 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/7d1bc32d6477ff96a32695ea4be8144e4513ab2d ↗
- https://git.kernel.org/stable/c/2a20592baff59c5351c5200ec667e1a2aa22af85 ↗
- https://git.kernel.org/stable/c/168e82f640ed1891a700bdb43e37da354b2ab63c ↗
- https://git.kernel.org/stable/c/50cbad42bfea8c052b7ca590bd4126cdc898713c ↗
- https://git.kernel.org/stable/c/5d3c4c79384af06e3c8e25b7770b6247496b4417 ↗