Subject: CVE-2022-48794: net: ieee802154: at86rf230: Stop leaking skb's

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

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

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

net: ieee802154: at86rf230: Stop leaking skb's

Upon error the ieee802154_xmit_complete() helper is not called. Only
ieee802154_wake_queue() is called manually. In the Tx case we then leak
the skb structure.

Free the skb structure upon error before returning when appropriate.

As the 'is_tx = 0' cannot be moved in the complete handler because of a
possible race between the delay in switching to STATE_RX_AACK_ON and a
new interrupt, we introduce an intermediate 'was_tx' boolean just for
this purpose.

There is no Fixes tag applying here, many changes have been made on this
area and the issue kind of always existed.

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

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

	Fixed in 4.9.303 with commit d2a1eaf51b7d
	Fixed in 4.14.268 with commit af649e5c95f5
	Fixed in 4.19.231 with commit 6312f6a53fd3
	Fixed in 5.4.181 with commit 455ef08d6e54
	Fixed in 5.10.102 with commit 0fd484644c68
	Fixed in 5.15.25 with commit 23b2a2538240
	Fixed in 5.16.11 with commit 1c72f04d52b7
	Fixed in 5.17 with commit e5ce576d45bf

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-48794
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/ieee802154/at86rf230.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/d2a1eaf51b7d4412319adb6acef114ba472d1692
	https://git.kernel.org/stable/c/af649e5c95f56df64363bc46f6746b87819f9c0d
	https://git.kernel.org/stable/c/6312f6a53fd3ea38125dcaca5e3c9aa7d8a60cf7
	https://git.kernel.org/stable/c/455ef08d6e5473526fa6763f75a93f7198206966
	https://git.kernel.org/stable/c/0fd484644c68897c490a3307bfcc8bf767df5a43
	https://git.kernel.org/stable/c/23b2a25382400168427ea278f3d8bf4ecfd333bf
	https://git.kernel.org/stable/c/1c72f04d52b7200bb83426a9bed378668271ea4a
	https://git.kernel.org/stable/c/e5ce576d45bf72fd0e3dc37eff897bfcc488f6a9