CVE-2022-50470

Summary

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

xhci: Remove device endpoints from bandwidth list when freeing the device

Endpoints are normally deleted from the bandwidth list when they are dropped, before the virt device is freed.

If xHC host is dying or being removed then the endpoints aren't dropped cleanly due to functions returning early to avoid interacting with a non-accessible host controller.

So check and delete endpoints that are still on the bandwidth list when freeing the virt device.

Solves a list_del corruption kernel crash when unbinding xhci-pci, caused by xhci_mem_cleanup() when it later tried to delete already freed endpoints from the bandwidth list.

This only affects hosts that use software bandwidth checking, which currenty is only the xHC in intel Panther Point PCH (Ivy Bridge)

Affected Software

VendorProductVersion RangeStatus
LinuxLinux2e27980e6eb78114c4ecbaad1ba71836e3887d18 < 5e4ce28ad907aa54f13b21d5f1dc490525957b0caffected
LinuxLinux2e27980e6eb78114c4ecbaad1ba71836e3887d18 < f0de39474078adef6ece7a183e34c15ce2c1d8d1affected
LinuxLinux2e27980e6eb78114c4ecbaad1ba71836e3887d18 < cebbc8d335d6bcc1316584f779c08f80287c6af8affected
LinuxLinux2e27980e6eb78114c4ecbaad1ba71836e3887d18 < 8f1cd9633d1f21efc13e8fc75be8f2b6bb85e38caffected
LinuxLinux2e27980e6eb78114c4ecbaad1ba71836e3887d18 < 678d2cc2041cc6ce05030852dce9ad42719abcfcaffected
LinuxLinux2e27980e6eb78114c4ecbaad1ba71836e3887d18 < c892a81c7424b4f6a660cb9c249d354ccf3afecaaffected
LinuxLinux2e27980e6eb78114c4ecbaad1ba71836e3887d18 < 3bf860a41e0f2fcea0ac3aae8f7ef887a7994b70affected
LinuxLinux2e27980e6eb78114c4ecbaad1ba71836e3887d18 < 5aed5b7c2430ce318a8e62f752f181e66f0d1053affected
LinuxLinux3.2affected
LinuxLinux0 < 3.2unaffected
LinuxLinux4.9.332 <= 4.9.*unaffected
LinuxLinux4.14.298 <= 4.14.*unaffected
LinuxLinux4.19.264 <= 4.19.*unaffected
LinuxLinux5.4.223 <= 5.4.*unaffected
LinuxLinux5.10.153 <= 5.10.*unaffected
LinuxLinux5.15.77 <= 5.15.*unaffected
LinuxLinux6.0.7 <= 6.0.*unaffected
LinuxLinux6.1 <= *unaffected

Weaknesses

References