CVE-2021-46992CWE-125

CVE-2021-46992

High · published February 28, 2024

CVSS v3.1
7.8
EPSS
0%
Percentile
17.1
In the wild
Unconfirmed
What it is

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

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00263 · 17.1th percentile
Weakness
CWE-125 · Out-of-bounds Read
Published
2024-02-28T14:15Z
Affected products (6)
ProductVersionsFixed in
linux/linux_kernel≥ 4.9, < 4.14.2334.14.233
linux/linux_kernel≥ 4.15, < 4.19.1914.19.191
linux/linux_kernel≥ 4.20, < 5.4.1205.4.120
linux/linux_kernel≥ 5.5, < 5.10.385.10.38
linux/linux_kernel≥ 5.11, < 5.11.225.11.22
linux/linux_kernel≥ 5.12, < 5.12.55.12.5
References (14)
https://git.kernel.org/stable/c/1e8ab479cfbe5751efccedb95afb9b112a5ba475 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/2824cafc6a93792d9ad85939c499161214d84c4b · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/72b49dd116ca00a46a11d5a4d8d7987f05ed9cd7 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/a388d10961ff8578b1a6691945d406c0f33aa71b · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/a54754ec9891830ba548e2010c889e3c8146e449 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/c77e2ef18167ad334e27610ced9a7f6af5ec1787 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/efcd730ddd6f25578bd31bfe703e593e2421d708 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/1e8ab479cfbe5751efccedb95afb9b112a5ba475 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/2824cafc6a93792d9ad85939c499161214d84c4b · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/72b49dd116ca00a46a11d5a4d8d7987f05ed9cd7 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/a388d10961ff8578b1a6691945d406c0f33aa71b · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/a54754ec9891830ba548e2010c889e3c8146e449 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/c77e2ef18167ad334e27610ced9a7f6af5ec1787 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/efcd730ddd6f25578bd31bfe703e593e2421d708 · af854a3a-2127-422b-91ae-364da2661108
EPSS history
Timeline
  • 28 FEB 08:13Z
    netfilter: nftables: avoid overflows in nft_hash_buckets()
    cvelistv5