CVE-2022-49197
published 2025-02-26CVE-2022-49197: 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…
PriorityP421medium5.5CVSS 3.1
AVLACLPRLUINSUCNINAH
EPSS
0.27%
19.0th percentile
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'
Affected
23 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | linux | < linux 5.17.3-1 (bookworm) | linux 5.17.3-1 (bookworm) |
| linux | linux | — | — |
| linux | linux | >= f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 < e1c5d46f05aa23d740daae5cd3a6472145afac42 | e1c5d46f05aa23d740daae5cd3a6472145afac42 |
| linux | linux | >= f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 < ac5883a8890a11c00b32a19949a25d4afeaa2f5a | ac5883a8890a11c00b32a19949a25d4afeaa2f5a |
| linux | linux | >= f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 < f75f4abeec4c04b600a15b50c89a481f1e7435ee | f75f4abeec4c04b600a15b50c89a481f1e7435ee |
| linux | linux | >= f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 < 41249fff507387c3323b198d0052faed08b14de4 | 41249fff507387c3323b198d0052faed08b14de4 |
| linux | linux | >= f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 < b0898362188e05b2202656058cc32d98fabf3bac | b0898362188e05b2202656058cc32d98fabf3bac |
| linux | linux | >= f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 < 7409ff6393a67ff9838d0ae1bd102fb5f020d07a | 7409ff6393a67ff9838d0ae1bd102fb5f020d07a |
| linux | linux | >= f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 < e8aaf3134bc5e943048eefe9f2ddaabf41d92b1a | e8aaf3134bc5e943048eefe9f2ddaabf41d92b1a |
| linux | linux | >= f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 < e23e1e981247feb3c7d0236fe58aceb685f234ae | e23e1e981247feb3c7d0236fe58aceb685f234ae |
| linux | linux | >= f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 < 0caf6d9922192dd1afa8dc2131abfb4df1443b9f | 0caf6d9922192dd1afa8dc2131abfb4df1443b9f |
| linux | linux_kernel | >= 0 < 5.10.113-1 | 5.10.113-1 |
| linux | linux_kernel | >= 0 < 5.17.3-1 | 5.17.3-1 |
| linux | linux_kernel | >= 0 < 5.17.3-1 | 5.17.3-1 |
| linux | linux_kernel | >= 0 < 5.17.3-1 | 5.17.3-1 |
| linux | linux_kernel | >= 2.6.14 < 4.9.311 | 4.9.311 |
| linux | linux_kernel | >= 4.10 < 4.14.276 | 4.14.276 |
| linux | linux_kernel | >= 4.15 < 4.19.238 | 4.19.238 |
| linux | linux_kernel | >= 4.20 < 5.4.189 | 5.4.189 |
| linux | linux_kernel | >= 5.11 < 5.15.33 | 5.15.33 |
| linux | linux_kernel | >= 5.16 < 5.16.19 | 5.16.19 |
| linux | linux_kernel | >= 5.17 < 5.17.2 | 5.17.2 |
| linux | linux_kernel | >= 5.5 < 5.10.110 | 5.10.110 |
CVSS provenance
nvdv3.15.5MEDIUMCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
osv5.5MEDIUM
vendor_debian5.5MEDIUM
vendor_redhat5.5MEDIUM
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
Red Hat
kernel: af_netlink: Fix shift out of bounds in group mask calculation
vendor_redhat·2025-02-26·CVSS 5.5
CVE-2022-49197 [MEDIUM] kernel: af_netlink: Fix shift out of bounds in group mask calculation
kernel: af_netlink: Fix shift out of bounds in group mask calculation
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 b
Debian
CVE-2022-49197: linux - In the Linux kernel, the following vulnerability has been resolved: af_netlink:...
vendor_debian·2022·CVSS 5.5
CVE-2022-49197 [MEDIUM] CVE-2022-49197: linux - In the Linux kernel, the following vulnerability has been resolved: af_netlink:...
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 info
GHSA
GHSA-mmh9-qrx9-9x5h: In the Linux kernel, the following vulnerability has been resolved:
af_netlink: Fix shift out of bounds in group mask calculation
When a netlink mes
ghsa_unreviewed·2025-09-23
CVE-2022-49197 [MEDIUM] CWE-190 GHSA-mmh9-qrx9-9x5h: In the Linux kernel, the following vulnerability has been resolved:
af_netlink: Fix shift out of bounds in group mask calculation
When a netlink mes
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
OSV
CVE-2022-49197: In the Linux kernel, the following vulnerability has been resolved: af_netlink: Fix shift out of bounds in group mask calculation When a netlink messa
osv·2025-02-26·CVSS 5.5
CVE-2022-49197 [MEDIUM] CVE-2022-49197: In the Linux kernel, the following vulnerability has been resolved: af_netlink: Fix shift out of bounds in group mask calculation When a netlink messa
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 info
No detection rules found.
No public exploits indexed.
https://git.kernel.org/stable/c/0caf6d9922192dd1afa8dc2131abfb4df1443b9fhttps://git.kernel.org/stable/c/41249fff507387c3323b198d0052faed08b14de4https://git.kernel.org/stable/c/7409ff6393a67ff9838d0ae1bd102fb5f020d07ahttps://git.kernel.org/stable/c/ac5883a8890a11c00b32a19949a25d4afeaa2f5ahttps://git.kernel.org/stable/c/b0898362188e05b2202656058cc32d98fabf3bachttps://git.kernel.org/stable/c/e1c5d46f05aa23d740daae5cd3a6472145afac42https://git.kernel.org/stable/c/e23e1e981247feb3c7d0236fe58aceb685f234aehttps://git.kernel.org/stable/c/e8aaf3134bc5e943048eefe9f2ddaabf41d92b1ahttps://git.kernel.org/stable/c/f75f4abeec4c04b600a15b50c89a481f1e7435ee
2025-02-26
Published