[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025022622-CVE-2022-49227-76b1@gregkh>
Date: Wed, 26 Feb 2025 02:57:12 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: CVE-2022-49227: igc: avoid kernel warning when changing RX ring parameters
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
igc: avoid kernel warning when changing RX ring parameters
Calling ethtool changing the RX ring parameters like this:
$ ethtool -G eth0 rx 1024
on igc triggers kernel warnings like this:
[ 225.198467] ------------[ cut here ]------------
[ 225.198473] Missing unregister, handled but fix driver
[ 225.198485] WARNING: CPU: 7 PID: 959 at net/core/xdp.c:168
xdp_rxq_info_reg+0x79/0xd0
[...]
[ 225.198601] Call Trace:
[ 225.198604] <TASK>
[ 225.198609] igc_setup_rx_resources+0x3f/0xe0 [igc]
[ 225.198617] igc_ethtool_set_ringparam+0x30e/0x450 [igc]
[ 225.198626] ethnl_set_rings+0x18a/0x250
[ 225.198631] genl_family_rcv_msg_doit+0xca/0x110
[ 225.198637] genl_rcv_msg+0xce/0x1c0
[ 225.198640] ? rings_prepare_data+0x60/0x60
[ 225.198644] ? genl_get_cmd+0xd0/0xd0
[ 225.198647] netlink_rcv_skb+0x4e/0xf0
[ 225.198652] genl_rcv+0x24/0x40
[ 225.198655] netlink_unicast+0x20e/0x330
[ 225.198659] netlink_sendmsg+0x23f/0x480
[ 225.198663] sock_sendmsg+0x5b/0x60
[ 225.198667] __sys_sendto+0xf0/0x160
[ 225.198671] ? handle_mm_fault+0xb2/0x280
[ 225.198676] ? do_user_addr_fault+0x1eb/0x690
[ 225.198680] __x64_sys_sendto+0x20/0x30
[ 225.198683] do_syscall_64+0x38/0x90
[ 225.198687] entry_SYSCALL_64_after_hwframe+0x44/0xae
[ 225.198693] RIP: 0033:0x7f7ae38ac3aa
igc_ethtool_set_ringparam() copies the igc_ring structure but neglects to
reset the xdp_rxq_info member before calling igc_setup_rx_resources().
This in turn calls xdp_rxq_info_reg() with an already registered xdp_rxq_info.
Make sure to unregister the xdp_rxq_info structure first in
igc_setup_rx_resources.
The Linux kernel CVE team has assigned CVE-2022-49227 to this issue.
Affected and fixed versions
===========================
Issue introduced in 5.13 with commit 73f1071c1d2952b8c93cd6cd99744768c59ec840 and fixed in 5.15.33 with commit ab8c107470d12e7ef99030bf0911a10cdef62d16
Issue introduced in 5.13 with commit 73f1071c1d2952b8c93cd6cd99744768c59ec840 and fixed in 5.16.19 with commit 3ddb49af08094ebee250b461172ee7b8e27a35d3
Issue introduced in 5.13 with commit 73f1071c1d2952b8c93cd6cd99744768c59ec840 and fixed in 5.17.2 with commit 65aebcf1e05bd97d2e7ffcdff36efea1757c9450
Issue introduced in 5.13 with commit 73f1071c1d2952b8c93cd6cd99744768c59ec840 and fixed in 5.18 with commit 453307b569a0d41bddd07f26bf41b784cd82a4c9
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-49227
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/intel/igc/igc_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/ab8c107470d12e7ef99030bf0911a10cdef62d16
https://git.kernel.org/stable/c/3ddb49af08094ebee250b461172ee7b8e27a35d3
https://git.kernel.org/stable/c/65aebcf1e05bd97d2e7ffcdff36efea1757c9450
https://git.kernel.org/stable/c/453307b569a0d41bddd07f26bf41b784cd82a4c9
Powered by blists - more mailing lists