CVE-2021-46992

netfilter: nftables: avoid overflows in nft_hash_buckets()

State
Published
Severity
7.8 High
Published
Feb 28, 2024
Updated
Aug 5, 2026
Reserved
Feb 27, 2024

Read the record on cve.org

Description

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

netfilter: nftables: avoid overflows in nft_hash_buckets()

Number of buckets being stored in 32bit variables, we have to ensure that no overflows occur in nft_hash_buckets()

syzbot injected a size == 0x40000000 and reported:

UBSAN: shift-out-of-bounds in ./include/linux/log2.h:57:13 shift exponent 64 is too large for 64-bit type 'long unsigned int' CPU: 1 PID: 29539 Comm: syz-executor.4 Not tainted 5.12.0-rc7-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:79 [inline] dump_stack+0x141/0x1d7 lib/dump_stack.c:120 ubsan_epilogue+0xb/0x5a lib/ubsan.c:148 __ubsan_handle_shift_out_of_bounds.cold+0xb1/0x181 lib/ubsan.c:327 __roundup_pow_of_two include/linux/log2.h:57 [inline] nft_hash_buckets net/netfilter/nft_set_hash.c:411 [inline] nft_hash_estimate.cold+0x19/0x1e net/netfilter/nft_set_hash.c:652 nft_select_set_ops net/netfilter/nf_tables_api.c:3586 [inline] nf_tables_newset+0xe62/0x3110 net/netfilter/nf_tables_api.c:4322 nfnetlink_rcv_batch+0xa09/0x24b0 net/netfilter/nfnetlink.c:488 nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:612 [inline] nfnetlink_rcv+0x3af/0x420 net/netfilter/nfnetlink.c:630 netlink_unicast_kernel net/netlink/af_netlink.c:1312 [inline] netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1338 netlink_sendmsg+0x856/0xd90 net/netlink/af_netlink.c:1927 sock_sendmsg_nosec net/socket.c:654 [inline] sock_sendmsg+0xcf/0x120 net/socket.c:674 ____sys_sendmsg+0x6e8/0x810 net/socket.c:2350 ___sys_sendmsg+0xf3/0x170 net/socket.c:2404 __sys_sendmsg+0xe5/0x1b0 net/socket.c:2433 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 0ed6389c483dc77cdbdd48de0ca7ce41723dd667 to before 2824cafc6a93792d9ad85939c499161214d84c4bAffected
  • 0ed6389c483dc77cdbdd48de0ca7ce41723dd667 to before efcd730ddd6f25578bd31bfe703e593e2421d708Affected
  • 0ed6389c483dc77cdbdd48de0ca7ce41723dd667 to before c77e2ef18167ad334e27610ced9a7f6af5ec1787Affected
  • 0ed6389c483dc77cdbdd48de0ca7ce41723dd667 to before 72b49dd116ca00a46a11d5a4d8d7987f05ed9cd7Affected
  • 0ed6389c483dc77cdbdd48de0ca7ce41723dd667 to before 1e8ab479cfbe5751efccedb95afb9b112a5ba475Affected
  • 0ed6389c483dc77cdbdd48de0ca7ce41723dd667 to before a388d10961ff8578b1a6691945d406c0f33aa71bAffected
  • 0ed6389c483dc77cdbdd48de0ca7ce41723dd667 to before a54754ec9891830ba548e2010c889e3c8146e449Affected
LinuxLinux
  • 4.9Affected
  • before 4.9Not affected
  • 4.14.233 through 4.14.*Not affected
  • 4.19.191 through 4.19.*Not affected
  • 5.4.120 through 5.4.*Not affected
  • 5.10.38 through 5.10.*Not affected
  • 5.11.22 through 5.11.*Not affected
  • 5.12.5 through 5.12.*Not affected
  • 5.13 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.