CVE-2024-41040CWE-416

CVE-2024-41040

Critical · published July 29, 2024

CVSS v3.1
9.8
EPSS
1%
Percentile
62.5
In the wild
Unconfirmed
What it is

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

net/sched: Fix UAF when resolving a clash

KASAN reports the following UAF:

BUG: KASAN: slab-use-after-free in tcf_ct_flow_table_process_conn+0x12b/0x380 [act_ct]

Read of size 1 at addr ffff888c07603600 by task handler130/6469

Call Trace:

<IRQ>

dump_stack_lvl+0x48/0x70

print_address_description.constprop.0+0x33/0x3d0

print_report+0xc0/0x2b0

kasan_report+0xd0/0x120

__asan_load1+0x6c/0x80

tcf_ct_flow_table_process_conn+0x12b/0x380 [act_ct]

tcf_ct_act+0x886/0x1350 [act_ct]

tcf_action_exec+0xf8/0x1f0

fl_classify+0x355/0x360 [cls_flower]

__tcf_classify+0x1fd/0x330

tcf_classify+0x21c/0x3c0

sch_handle_ingress.constprop.0+0x2c5/0x500

__netif_receive_skb_core.constprop.0+0xb25/0x1510

__netif_receive_skb_list_core+0x220/0x4c0

netif_receive_skb_list_internal+0x446/0x620

napi_complete_done+0x157/0x3d0

gro_cell_poll+0xcf/0x100

__napi_poll+0x65/0x310

net_rx_action+0x30c/0x5c0

__do_softirq+0x14f/0x491

__irq_exit_rcu+0x82/0xc0

irq_exit_rcu+0xe/0x20

common_interrupt+0xa1/0xb0

</IRQ>

<TASK>

asm_common_interrupt+0x27/0x40

Allocated by task 6469:

kasan_save_stack+0x38/0x70

kasan_set_track+0x25/0x40

kasan_save_alloc_info+0x1e/0x40

__kasan_krealloc+0x133/0x190

krealloc+0xaa/0x130

nf_ct_ext_add+0xed/0x230 [nf_conntrack]

tcf_ct_act+0x1095/0x1350 [act_ct]

tcf_action_exec+0xf8/0x1f0

fl_classify+0x355/0x360 [cls_flower]

__tcf_classify+0x1fd/0x330

tcf_classify+0x21c/0x3c0

sch_handle_ingress.constprop.0+0x2c5/0x500

__netif_receive_skb_core.constprop.0+0xb25/0x1510

__netif_receive_skb_list_core+0x220/0x4c0

netif_receive_skb_list_internal+0x446/0x620

napi_complete_done+0x157/0x3d0

gro_cell_poll+0xcf/0x100

__napi_poll+0x65/0x310

net_rx_action+0x30c/0x5c0

__do_softirq+0x14f/0x491

Freed by task 6469:

kasan_save_stack+0x38/0x70

kasan_set_track+0x25/0x40

kasan_save_free_info+0x2b/0x60

____kasan_slab_free+0x180/0x1f0

__kasan_slab_free+0x12/0x30

slab_free_freelist_hook+0xd2/0x1a0

__kmem_cache_free+0x1a2/0x2f0

kfree+0x78/0x120

nf_conntrack_free+0x74/0x130 [nf_conntrack]

nf_ct_destroy+0xb2/0x140 [nf_conntrack]

__nf_ct_resolve_clash+0x529/0x5d0 [nf_conntrack]

nf_ct_resolve_clash+0xf6/0x490 [nf_conntrack]

__nf_conntrack_confirm+0x2c6/0x770 [nf_conntrack]

tcf_ct_act+0x12ad/0x1350 [act_ct]

tcf_action_exec+0xf8/0x1f0

fl_classify+0x355/0x360 [cls_flower]

__tcf_classify+0x1fd/0x330

tcf_classify+0x21c/0x3c0

sch_handle_ingress.constprop.0+0x2c5/0x500

__netif_receive_skb_core.constprop.0+0xb25/0x1510

__netif_receive_skb_list_core+0x220/0x4c0

netif_receive_skb_list_internal+0x446/0x620

napi_complete_done+0x157/0x3d0

gro_cell_poll+0xcf/0x100

__napi_poll+0x65/0x310

net_rx_action+0x30c/0x5c0

__do_softirq+0x14f/0x491

The ct may be dropped if a clash has been resolved but is still passed to

the tcf_ct_flow_table_process_conn function for further usage. This issue

can be fixed by retrieving ct from skb again after confirming conntrack.

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.01000 · 62.5th percentile
Weakness
CWE-416 · Use After Free
Published
2024-07-29T19:15Z
Affected products (6)
ProductVersionsFixed in
linux/linux_kernel≥ 5.10.43, < 5.10.2225.10.222
linux/linux_kernel≥ 5.12.10, < 5.135.13
linux/linux_kernel≥ 5.13, < 5.15.1635.15.163
linux/linux_kernel≥ 5.16, < 6.1.1006.1.100
linux/linux_kernel≥ 6.2, < 6.6.416.6.41
linux/linux_kernel≥ 6.7, < 6.9.106.9.10
References (13)
EPSS history
Timeline
  • 29 JUL 14:31Z
    net/sched: Fix UAF when resolving a clash
    cvelistv5