Subject: CVE-2022-48805: net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup

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

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

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

net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup

ax88179_rx_fixup() contains several out-of-bounds accesses that can be
triggered by a malicious (or defective) USB device, in particular:

 - The metadata array (hdr_off..hdr_off+2*pkt_cnt) can be out of bounds,
   causing OOB reads and (on big-endian systems) OOB endianness flips.
 - A packet can overlap the metadata array, causing a later OOB
   endianness flip to corrupt data used by a cloned SKB that has already
   been handed off into the network stack.
 - A packet SKB can be constructed whose tail is far beyond its end,
   causing out-of-bounds heap data to be considered part of the SKB's
   data.

I have tested that this can be used by a malicious USB device to send a
bogus ICMPv6 Echo Request and receive an ICMPv6 Echo Reply in response
that contains random kernel heap data.
It's probably also possible to get OOB writes from this on a
little-endian system somehow - maybe by triggering skb_cow() via IP
options processing -, but I haven't tested that.

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

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

	Issue introduced in 3.9 with commit e2ca90c276e1 and fixed in 4.9.303 with commit 711b6bf3fb05
	Issue introduced in 3.9 with commit e2ca90c276e1 and fixed in 4.14.268 with commit 63f0cfb36c1f
	Issue introduced in 3.9 with commit e2ca90c276e1 and fixed in 4.19.231 with commit 1668781ed24d
	Issue introduced in 3.9 with commit e2ca90c276e1 and fixed in 5.4.180 with commit a0fd5492ee76
	Issue introduced in 3.9 with commit e2ca90c276e1 and fixed in 5.10.101 with commit 758290defe93
	Issue introduced in 3.9 with commit e2ca90c276e1 and fixed in 5.15.24 with commit ffd0393adcdc
	Issue introduced in 3.9 with commit e2ca90c276e1 and fixed in 5.16.10 with commit 9681823f96a8
	Issue introduced in 3.9 with commit e2ca90c276e1 and fixed in 5.17 with commit 57bc3d3ae8c1

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-48805
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/usb/ax88179_178a.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/711b6bf3fb052f0a6b5b3205d50e30c0c2980382
	https://git.kernel.org/stable/c/63f0cfb36c1f1964a59ce544156677601e2d8740
	https://git.kernel.org/stable/c/1668781ed24da43498799aa4f65714a7de201930
	https://git.kernel.org/stable/c/a0fd5492ee769029a636f1fb521716b022b1423d
	https://git.kernel.org/stable/c/758290defe93a865a2880d10c5d5abd288b64b5d
	https://git.kernel.org/stable/c/ffd0393adcdcefab7e131488e10dcfde5e02d6eb
	https://git.kernel.org/stable/c/9681823f96a811268265f35307072ad80713c274
	https://git.kernel.org/stable/c/57bc3d3ae8c14df3ceb4e17d26ddf9eeab304581