Description
In the Linux kernel, the following vulnerability has been resolved: virtio: break and reset virtio devices on device_shutdown() Hongyu reported a hang on kexec in a VM. QEMU reported invalid memory accesses during the hang. Invalid read at addr 0x102877002, size 2, region '(null)', reason: rejected Invalid write at addr 0x102877A44, size 2, region '(null)', reason: rejected ... It was traced down to virtio-console. Kexec works fine if virtio-console is not in use. The issue is that virtio-console continues to write to the MMIO even after underlying virtio-pci device is reset. Additionally, Eric noticed that IOMMUs are reset before devices, if devices are not reset on shutdown they continue to poke at guest memory and get errors from the IOMMU. Some devices get wedged then. The problem can be solved by breaking all virtio devices on virtio bus shutdown, then resetting them.
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
ec3d41c4db4c21164332826ea8d812f94f2f6886 to < 0c03e32494dd0bbcc301523e5ae567c2f567a7d9affectedec3d41c4db4c21164332826ea8d812f94f2f6886 to < acdfe206be6c70ec55dc8bfdb1a22036d10fae26affectedec3d41c4db4c21164332826ea8d812f94f2f6886 to < 1eaa83fd94ed5e40d43139025f5acb7bcfed3b5faffectedec3d41c4db4c21164332826ea8d812f94f2f6886 to < aee42f3d57bfa37b2716df4584edeecf63b9df4caffectedec3d41c4db4c21164332826ea8d812f94f2f6886 to < 8bd2fa086a04886798b505f28db4002525895203affected
Linux Linux
Default version status: affected
2.6.24affected0 to < 2.6.24unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.14.9 to ≤ 6.14.*unaffected6.15 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/0c03e32494dd0bbcc301523e5ae567c2f567a7d9 ↗
- https://git.kernel.org/stable/c/acdfe206be6c70ec55dc8bfdb1a22036d10fae26 ↗
- https://git.kernel.org/stable/c/1eaa83fd94ed5e40d43139025f5acb7bcfed3b5f ↗
- https://git.kernel.org/stable/c/aee42f3d57bfa37b2716df4584edeecf63b9df4c ↗
- https://git.kernel.org/stable/c/8bd2fa086a04886798b505f28db4002525895203 ↗