CVE-2022-48935CWE-416

CVE-2022-48935

High · published August 22, 2024

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

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

netfilter: nf_tables: unregister flowtable hooks on netns exit

Unregister flowtable hooks before they are releases via

nf_tables_flowtable_destroy() otherwise hook core reports UAF.

BUG: KASAN: use-after-free in nf_hook_entries_grow+0x5a7/0x700 net/netfilter/core.c:142 net/netfilter/core.c:142

Read of size 4 at addr ffff8880736f7438 by task syz-executor579/3666

CPU: 0 PID: 3666 Comm: syz-executor579 Not tainted 5.16.0-rc5-syzkaller #0

Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011

Call Trace:

<TASK>

__dump_stack lib/dump_stack.c:88 [inline]

__dump_stack lib/dump_stack.c:88 [inline] lib/dump_stack.c:106

dump_stack_lvl+0x1dc/0x2d8 lib/dump_stack.c:106 lib/dump_stack.c:106

print_address_description+0x65/0x380 mm/kasan/report.c:247 mm/kasan/report.c:247

__kasan_report mm/kasan/report.c:433 [inline]

__kasan_report mm/kasan/report.c:433 [inline] mm/kasan/report.c:450

kasan_report+0x19a/0x1f0 mm/kasan/report.c:450 mm/kasan/report.c:450

nf_hook_entries_grow+0x5a7/0x700 net/netfilter/core.c:142 net/netfilter/core.c:142

__nf_register_net_hook+0x27e/0x8d0 net/netfilter/core.c:429 net/netfilter/core.c:429

nf_register_net_hook+0xaa/0x180 net/netfilter/core.c:571 net/netfilter/core.c:571

nft_register_flowtable_net_hooks+0x3c5/0x730 net/netfilter/nf_tables_api.c:7232 net/netfilter/nf_tables_api.c:7232

nf_tables_newflowtable+0x2022/0x2cf0 net/netfilter/nf_tables_api.c:7430 net/netfilter/nf_tables_api.c:7430

nfnetlink_rcv_batch net/netfilter/nfnetlink.c:513 [inline]

nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:634 [inline]

nfnetlink_rcv_batch net/netfilter/nfnetlink.c:513 [inline] net/netfilter/nfnetlink.c:652

nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:634 [inline] net/netfilter/nfnetlink.c:652

nfnetlink_rcv+0x10e6/0x2550 net/netfilter/nfnetlink.c:652 net/netfilter/nfnetlink.c:652

__nft_release_hook() calls nft_unregister_flowtable_net_hooks() which

only unregisters the hooks, then after RCU grace period, it is

guaranteed that no packets add new entries to the flowtable (no flow

offload rules and flowtable hooks are reachable from packet path), so it

is safe to call nf_flow_table_free() which cleans up the remaining

entries from the flowtable (both software and hardware) and it unbinds

the flow_block.

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.00212 · 10.9th percentile
Weakness
CWE-416 · Use After Free
Published
2024-08-22T08:15Z
Affected products (5)
ProductVersionsFixed in
linux/linux_kernel< 4.19.3164.19.316
linux/linux_kernel≥ 4.20, < 5.4.2625.4.262
linux/linux_kernel≥ 5.5, < 5.10.1985.10.198
linux/linux_kernel≥ 5.11, < 5.15.265.15.26
linux/linux_kernel≥ 5.16, < 5.16.125.16.12
References (4)
EPSS history
Timeline
  • 22 AUG 03:31Z
    netfilter: nf_tables: unregister flowtable hooks on netns exit
    cvelistv5