Subject: CVE-2024-43883: usb: vhci-hcd: Do not drop references before new references are gained

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

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

usb: vhci-hcd: Do not drop references before new references are gained

At a few places the driver carries stale pointers
to references that can still be used. Make sure that does not happen.
This strictly speaking closes ZDI-CAN-22273, though there may be
similar races in the driver.

The Linux kernel CVE team has assigned CVE-2024-43883 to this issue.

Affected and fixed versions
===========================

	Fixed in 4.19.320 with commit 5a3c473b28ae
	Fixed in 5.4.282 with commit 9c3746ce8d8f
	Fixed in 5.10.224 with commit 4dacdb9720aa
	Fixed in 5.15.165 with commit e8c1e606dab8
	Fixed in 6.1.105 with commit 585e6bc7d0a9
	Fixed in 6.6.46 with commit 128e82e41cf7
	Fixed in 6.10.5 with commit c3d0857b7fc2
	Fixed in 6.11 with commit afdcfd3d6fcd

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2024-43883
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	drivers/usb/usbip/vhci_hcd.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/5a3c473b28ae1c1f7c4dc129e30cb19ae6e96f89
	https://git.kernel.org/stable/c/9c3746ce8d8fcb3a2405644fc0eec7fc5312de80
	https://git.kernel.org/stable/c/4dacdb9720aaab10b6be121eae55820174d97174
	https://git.kernel.org/stable/c/e8c1e606dab8c56cf074b43b98d0805de7322ba2
	https://git.kernel.org/stable/c/585e6bc7d0a9bf73a8be3d3fb34e86b90cc61a14
	https://git.kernel.org/stable/c/128e82e41cf7d74a562726c1587d9d2ede1a0a37
	https://git.kernel.org/stable/c/c3d0857b7fc2c49f68f89128a5440176089a8f54
	https://git.kernel.org/stable/c/afdcfd3d6fcdeca2735ca8d994c5f2d24a368f0a