[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025022617-CVE-2022-49197-494d@gregkh>
Date: Wed, 26 Feb 2025 02:56:42 +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-49197: af_netlink: Fix shift out of bounds in group mask calculation
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
af_netlink: Fix shift out of bounds in group mask calculation
When a netlink message is received, netlink_recvmsg() fills in the address
of the sender. One of the fields is the 32-bit bitfield nl_groups, which
carries the multicast group on which the message was received. The least
significant bit corresponds to group 1, and therefore the highest group
that the field can represent is 32. Above that, the UB sanitizer flags the
out-of-bounds shift attempts.
Which bits end up being set in such case is implementation defined, but
it's either going to be a wrong non-zero value, or zero, which is at least
not misleading. Make the latter choice deterministic by always setting to 0
for higher-numbered multicast groups.
To get information about membership in groups >= 32, userspace is expected
to use nl_pktinfo control messages[0], which are enabled by NETLINK_PKTINFO
socket option.
[0] https://lwn.net/Articles/147608/
The way to trigger this issue is e.g. through monitoring the BRVLAN group:
# bridge monitor vlan &
# ip link add name br type bridge
Which produces the following citation:
UBSAN: shift-out-of-bounds in net/netlink/af_netlink.c:162:19
shift exponent 32 is too large for 32-bit type 'int'
The Linux kernel CVE team has assigned CVE-2022-49197 to this issue.
Affected and fixed versions
===========================
Issue introduced in 2.6.14 with commit f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 and fixed in 4.9.311 with commit e1c5d46f05aa23d740daae5cd3a6472145afac42
Issue introduced in 2.6.14 with commit f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 and fixed in 4.14.276 with commit ac5883a8890a11c00b32a19949a25d4afeaa2f5a
Issue introduced in 2.6.14 with commit f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 and fixed in 4.19.238 with commit f75f4abeec4c04b600a15b50c89a481f1e7435ee
Issue introduced in 2.6.14 with commit f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 and fixed in 5.4.189 with commit 41249fff507387c3323b198d0052faed08b14de4
Issue introduced in 2.6.14 with commit f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 and fixed in 5.10.110 with commit b0898362188e05b2202656058cc32d98fabf3bac
Issue introduced in 2.6.14 with commit f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 and fixed in 5.15.33 with commit 7409ff6393a67ff9838d0ae1bd102fb5f020d07a
Issue introduced in 2.6.14 with commit f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 and fixed in 5.16.19 with commit e8aaf3134bc5e943048eefe9f2ddaabf41d92b1a
Issue introduced in 2.6.14 with commit f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 and fixed in 5.17.2 with commit e23e1e981247feb3c7d0236fe58aceb685f234ae
Issue introduced in 2.6.14 with commit f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 and fixed in 5.18 with commit 0caf6d9922192dd1afa8dc2131abfb4df1443b9f
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-49197
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/netlink/af_netlink.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/e1c5d46f05aa23d740daae5cd3a6472145afac42
https://git.kernel.org/stable/c/ac5883a8890a11c00b32a19949a25d4afeaa2f5a
https://git.kernel.org/stable/c/f75f4abeec4c04b600a15b50c89a481f1e7435ee
https://git.kernel.org/stable/c/41249fff507387c3323b198d0052faed08b14de4
https://git.kernel.org/stable/c/b0898362188e05b2202656058cc32d98fabf3bac
https://git.kernel.org/stable/c/7409ff6393a67ff9838d0ae1bd102fb5f020d07a
https://git.kernel.org/stable/c/e8aaf3134bc5e943048eefe9f2ddaabf41d92b1a
https://git.kernel.org/stable/c/e23e1e981247feb3c7d0236fe58aceb685f234ae
https://git.kernel.org/stable/c/0caf6d9922192dd1afa8dc2131abfb4df1443b9f
Powered by blists - more mailing lists