CVE-2024-50257: netfilter: Fix use-after-free in get_info()
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:
<TASK>
get_info+0x128/0x180
do_ip6t_get_ctl+0x6a/0x430
nf_getsockopt+0x46/0x80
ipv6_getsockopt+0xb9/0x100
rawv6_getsockopt+0x42/0x190
do_sock_getsockopt+0xaa/0x180
__sys_getsockopt+0x70/0xc0
__x64_sys_getsockopt+0x20/0x30
do_syscall_64+0xa2/0x1a0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
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.
Security readout for executives and security teams
Plain-English summary
A Linux kernel race can leave networking code using memory after its module begins unloading. A local low-privileged attacker could potentially exploit this memory-safety flaw to crash the system or compromise kernel confidentiality and integrity. Practical exploitation is not established by the supplied sources.
Executive priority
Treat as a high-priority kernel maintenance issue, especially on shared or locally accessible Linux systems. Schedule tested vendor kernel updates promptly. Emergency action is more appropriate if exposed systems permit untrusted local access or show related kernel warnings; supplied evidence does not justify claiming active exploitation.
Technical view
Concurrent ip6table_nat module unloading and netfilter get_info() handling can return a table without securing its module reference. A subsequent module_put() may access freed memory. The kernel fix rechecks the module while traversing the per-network table list. This is classified as CWE-416 with CVSS 3.1 score 7.8.
Likely exposure
Exposure concerns Linux systems on affected kernel branches where IPv6 netfilter and ip6table_nat are present and local users can reach the relevant interface. The supplied version metadata identifies affected 5.15, 6.1, 6.6, 6.11, and 6.12 branch entries, but is insufficient for definitive distribution-package mapping.
Exploitation context
The CVSS vector describes local access, low privileges, low complexity, and no user interaction, with potentially high confidentiality, integrity, and availability impact. The documented trigger involves concurrent module unloading and get_info() execution. This CVE is not listed as KEV, and the supplied sources do not report active exploitation or a public exploit.
Researcher notes
The disclosure demonstrates a race-triggered reference-management failure and warning under QEMU, but does not establish reliable privilege escalation or other practical exploitation. Exact affected and fixed distribution package versions cannot be derived from the condensed version entries alone. Validate ancestry or vendor backports rather than relying only on displayed version strings.
Mitigation direction
Upgrade to a vendor-supported kernel package containing the referenced upstream fix.
Check distribution advisories for the exact corrected package applicable to each deployed kernel.
Prioritize multi-user systems and hosts where IPv6 netfilter modules are used.
Restrict unnecessary local account access while remediation is pending.
Validation and detection
Inventory running kernel versions and map them against vendor advisories.
Determine whether ip6table_nat and IPv6 netfilter functionality are enabled or used.
Confirm the installed kernel includes the applicable upstream stable fix.
Reboot into the corrected kernel and verify the running version.
Review kernel logs for module_put warnings involving get_info or ip6table_nat.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-416: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
3Timeline events
2ADP providers
7Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-416 · source CWE mapping
Use After Free
Use After Free represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.