Subject: CVE-2022-48754: phylib: fix potential use-after-free

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

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

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

phylib: fix potential use-after-free

Commit bafbdd527d56 ("phylib: Add device reset GPIO support") added call
to phy_device_reset(phydev) after the put_device() call in phy_detach().

The comment before the put_device() call says that the phydev might go
away with put_device().

Fix potential use-after-free by calling phy_device_reset() before
put_device().

The Linux kernel CVE team has assigned CVE-2022-48754 to this issue.

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

	Issue introduced in 4.16 with commit bafbdd527d56 and fixed in 4.19.228 with commit 67d271760b03
	Issue introduced in 4.16 with commit bafbdd527d56 and fixed in 5.4.176 with commit f39027cbada4
	Issue introduced in 4.16 with commit bafbdd527d56 and fixed in 5.10.96 with commit bd024e36f681
	Issue introduced in 4.16 with commit bafbdd527d56 and fixed in 5.15.19 with commit aefaccd19379
	Issue introduced in 4.16 with commit bafbdd527d56 and fixed in 5.16.5 with commit cb2fab10fc5e
	Issue introduced in 4.16 with commit bafbdd527d56 and fixed in 5.17 with commit cbda1b166875

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-2022-48754
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/net/phy/phy_device.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/67d271760b037ce0806d687ee6057edc8afd4205
	https://git.kernel.org/stable/c/f39027cbada43b33566c312e6be3db654ca3ad17
	https://git.kernel.org/stable/c/bd024e36f68174b1793906c39ca16cee0c9295c2
	https://git.kernel.org/stable/c/aefaccd19379d6c4620269a162bfb88ff687f289
	https://git.kernel.org/stable/c/cb2fab10fc5e7a3aa1bb0a68a3abdcf3e37852af
	https://git.kernel.org/stable/c/cbda1b16687580d5beee38273f6241ae3725960c