Subject: CVE-2023-52509: ravb: Fix use-after-free issue in ravb_tx_timeout_work()

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

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

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

ravb: Fix use-after-free issue in ravb_tx_timeout_work()

The ravb_stop() should call cancel_work_sync(). Otherwise,
ravb_tx_timeout_work() is possible to use the freed priv after
ravb_remove() was called like below:

CPU0			CPU1
			ravb_tx_timeout()
ravb_remove()
unregister_netdev()
free_netdev(ndev)
// free priv
			ravb_tx_timeout_work()
			// use priv

unregister_netdev() will call .ndo_stop() so that ravb_stop() is
called. And, after phy_stop() is called, netif_carrier_off()
is also called. So that .ndo_tx_timeout() will not be called
after phy_stop().

The Linux kernel CVE team has assigned CVE-2023-52509 to this issue.

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

	Issue introduced in 4.2 with commit c156633f1353 and fixed in 5.4.259 with commit 65d34cfd4e34
	Issue introduced in 4.2 with commit c156633f1353 and fixed in 5.10.199 with commit db9aafa19547
	Issue introduced in 4.2 with commit c156633f1353 and fixed in 5.15.136 with commit 616761cf9df9
	Issue introduced in 4.2 with commit c156633f1353 and fixed in 6.1.59 with commit 6f6fa8061f75
	Issue introduced in 4.2 with commit c156633f1353 and fixed in 6.5.8 with commit 105abd68ad8f
	Issue introduced in 4.2 with commit c156633f1353 and fixed in 6.6 with commit 397144287071

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-2023-52509
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/ethernet/renesas/ravb_main.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/65d34cfd4e347054eb4193bc95d9da7eaa72dee5
	https://git.kernel.org/stable/c/db9aafa19547833240f58c2998aed7baf414dc82
	https://git.kernel.org/stable/c/616761cf9df9af838c0a1a1232a69322a9eb67e6
	https://git.kernel.org/stable/c/6f6fa8061f756aedb93af12a8a5d3cf659127965
	https://git.kernel.org/stable/c/105abd68ad8f781985113aee2e92e0702b133705
	https://git.kernel.org/stable/c/3971442870713de527684398416970cf025b4f89