CVE-2022-49197

af_netlink: Fix shift out of bounds in group mask calculation

State
Published
Severity
Not scored
Published
Feb 26, 2025
Updated
May 11, 2026
Reserved
Feb 26, 2025

Read the record on cve.org

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'

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 to before e1c5d46f05aa23d740daae5cd3a6472145afac42Affected
  • f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 to before ac5883a8890a11c00b32a19949a25d4afeaa2f5aAffected
  • f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 to before f75f4abeec4c04b600a15b50c89a481f1e7435eeAffected
  • f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 to before 41249fff507387c3323b198d0052faed08b14de4Affected
  • f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 to before b0898362188e05b2202656058cc32d98fabf3bacAffected
  • f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 to before 7409ff6393a67ff9838d0ae1bd102fb5f020d07aAffected
  • f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 to before e8aaf3134bc5e943048eefe9f2ddaabf41d92b1aAffected
  • f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 to before e23e1e981247feb3c7d0236fe58aceb685f234aeAffected
  • f7fa9b10edbb9391bdd4ec8e8b3d621d0664b198 to before 0caf6d9922192dd1afa8dc2131abfb4df1443b9fAffected
LinuxLinux
  • 2.6.14Affected
  • before 2.6.14Not affected
  • 4.9.311 through 4.9.*Not affected
  • 4.14.276 through 4.14.*Not affected
  • 4.19.238 through 4.19.*Not affected
  • 5.4.189 through 5.4.*Not affected
  • 5.10.110 through 5.10.*Not affected
  • 5.15.33 through 5.15.*Not affected
  • 5.16.19 through 5.16.*Not affected
  • 5.17.2 through 5.17.*Not affected
  • 5.18 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.