Subject: CVE-2022-48977: can: af_can: fix NULL pointer dereference in can_rcv_filter

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

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

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

can: af_can: fix NULL pointer dereference in can_rcv_filter

Analogue to commit 8aa59e355949 ("can: af_can: fix NULL pointer
dereference in can_rx_register()") we need to check for a missing
initialization of ml_priv in the receive path of CAN frames.

Since commit 4e096a18867a ("net: introduce CAN specific pointer in the
struct net_device") the check for dev->type to be ARPHRD_CAN is not
sufficient anymore since bonding or tun netdevices claim to be CAN
devices but do not initialize ml_priv accordingly.

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

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

	Issue introduced in 5.4.110 with commit 4ac1feff6ea6 and fixed in 5.4.227 with commit 3982652957e8
	Issue introduced in 5.10.28 with commit 1a5751d58b14 and fixed in 5.10.159 with commit c42221efb115
	Issue introduced in 5.12 with commit 4e096a18867a and fixed in 5.15.83 with commit c142cba37de2
	Issue introduced in 5.12 with commit 4e096a18867a and fixed in 6.0.13 with commit fcc63f2f7ee3
	Issue introduced in 5.12 with commit 4e096a18867a and fixed in 6.1 with commit 0acc442309a0
	Issue introduced in 5.11.12 with commit 96340078d50a

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-48977
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:
	net/can/af_can.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/3982652957e8d79ac32efcb725450580650a8644
	https://git.kernel.org/stable/c/c42221efb1159d6a3c89e96685ee38acdce86b6f
	https://git.kernel.org/stable/c/c142cba37de29f740a3852f01f59876af8ae462a
	https://git.kernel.org/stable/c/fcc63f2f7ee3038d53216edd0d8291e57c752557
	https://git.kernel.org/stable/c/0acc442309a0a1b01bcdaa135e56e6398a49439c