Subject: CVE-2024-46739: uio_hv_generic: Fix kernel NULL pointer dereference in hv_uio_rescind

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

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

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

uio_hv_generic: Fix kernel NULL pointer dereference in hv_uio_rescind

For primary VM Bus channels, primary_channel pointer is always NULL. This
pointer is valid only for the secondary channels. Also, rescind callback
is meant for primary channels only.

Fix NULL pointer dereference by retrieving the device_obj from the parent
for the primary channel.

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

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

	Issue introduced in 4.16 with commit ca3cda6fcf1e and fixed in 4.19.322 with commit 3d414b64ecf6
	Issue introduced in 4.16 with commit ca3cda6fcf1e and fixed in 5.4.284 with commit f38f46da80a2
	Issue introduced in 4.16 with commit ca3cda6fcf1e and fixed in 5.10.226 with commit 1d8e020e51ab
	Issue introduced in 4.16 with commit ca3cda6fcf1e and fixed in 5.15.167 with commit 3005091cd537
	Issue introduced in 4.16 with commit ca3cda6fcf1e and fixed in 6.1.110 with commit 2be373469be1
	Issue introduced in 4.16 with commit ca3cda6fcf1e and fixed in 6.6.51 with commit de6946be9c8b
	Issue introduced in 4.16 with commit ca3cda6fcf1e and fixed in 6.10.10 with commit 928e399e84f4
	Issue introduced in 4.16 with commit ca3cda6fcf1e and fixed in 6.11 with commit fb1adbd7e50f

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-46739
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/uio/uio_hv_generic.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/3d414b64ecf6fd717d7510ffb893c6f23acbf50e
	https://git.kernel.org/stable/c/f38f46da80a2ab7d1b2f8fcb444c916034a2dac4
	https://git.kernel.org/stable/c/1d8e020e51ab07e40f9dd00b52f1da7d96fec04c
	https://git.kernel.org/stable/c/3005091cd537ef8cdb7530dcb2ecfba8d2ef475c
	https://git.kernel.org/stable/c/2be373469be1774bbe03b0fa7e2854e65005b1cc
	https://git.kernel.org/stable/c/de6946be9c8bc7d2279123433495af7c21011b99
	https://git.kernel.org/stable/c/928e399e84f4e80307dce44e89415115c473275b
	https://git.kernel.org/stable/c/fb1adbd7e50f3d2de56d0a2bb0700e2e819a329e