CVE-2024-50257 Information
Description
In the Linux kernel the following vulnerability has been resolved:
netfilter: Fix use-after-free in get_info()
ip6table_nat module unload has refcnt warning for UAF. call trace is:
WARNING: CPU: 1 PID: 379 at kernel/module/main.c:853 module_put+0x6f/0x80
Modules linked in: ip6table_nat(-)
CPU: 1 UID: 0 PID: 379 Comm: ip6tables Not tainted 6.12.0-rc4-00047-gc2ee9f594da8-dirty 205
Hardware name: QEMU Standard PC (i440FX + PIIX 1996)
BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
RIP: 0010:module_put+0x6f/0x80
Call Trace:
Concurrent execution of module unload and get_info() trigered the warning. The root cause is as follows:
cpu0 cpu1 module_exit //mod->state = MODULE_STATE_GOING ip6table_nat_exit xt_unregister_template kfree(t) //removed from templ_list getinfo() t = xt_find_table_lock list_for_each_entry(tmpl &xt_templates[af]…) if (strcmp(tmpl->name name)) continue; //table not found try_module_get list_for_each_entry(t &xt_net->tables[af]…) return t; //not get refcnt module_put(t->me) //uaf unregister_pernet_subsys //remove table from xt_net list
While xt_table module was going away and has been removed from xt_templates list we couldnt get refcnt of xt_table->me. Check module in xt_net->tables list re-traversal to fix it.
Reference
https://git.kernel.org/stable/c/ba22ea01348384df19cc1fabc7964be6e7189749 https://git.kernel.org/stable/c/cb7c388b5967946f097afdb759b7c860305f2d96 https://git.kernel.org/stable/c/6a1f088f9807f5166f58902d26246d0b88da03a8 https://git.kernel.org/stable/c/bab3bb35c03b263c486833d50d50c081d9e9832b https://git.kernel.org/stable/c/f48d258f0ac540f00fa617dac496c4c18b5dc2fa
Share on: