Subject: CVE-2024-44997: net: ethernet: mtk_wed: fix use-after-free panic in mtk_wed_setup_tc_block_cb()

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

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

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

net: ethernet: mtk_wed: fix use-after-free panic in mtk_wed_setup_tc_block_cb()

When there are multiple ap interfaces on one band and with WED on,
turning the interface down will cause a kernel panic on MT798X.

Previously, cb_priv was freed in mtk_wed_setup_tc_block() without
marking NULL,and mtk_wed_setup_tc_block_cb() didn't check the value, too.

Assign NULL after free cb_priv in mtk_wed_setup_tc_block() and check NULL
in mtk_wed_setup_tc_block_cb().

----------
Unable to handle kernel paging request at virtual address 0072460bca32b4f5
Call trace:
 mtk_wed_setup_tc_block_cb+0x4/0x38
 0xffffffc0794084bc
 tcf_block_playback_offloads+0x70/0x1e8
 tcf_block_unbind+0x6c/0xc8
...
---------

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

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

	Issue introduced in 6.2 with commit 799684448e3e and fixed in 6.6.48 with commit 326a89321f9d
	Issue introduced in 6.2 with commit 799684448e3e and fixed in 6.10.7 with commit b453a4bbda03
	Issue introduced in 6.2 with commit 799684448e3e and fixed in 6.11 with commit db1b4bedb9b9

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-44997
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/mediatek/mtk_wed.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/326a89321f9d5fe399fe6f9ff7c0fc766582a6a0
	https://git.kernel.org/stable/c/b453a4bbda03aa8741279c360ac82d1c3ac33548
	https://git.kernel.org/stable/c/db1b4bedb9b97c6d34b03d03815147c04fffe8b4