KernelScan.io

HIGH

netfilter Timeout Object UAF

CVE-2026-31665

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.8HIGH

01

In the Linux kernel, the following vulnerability has been resolved: netfilter: nft_ct: fix use-after-free in timeout object destroy nft_ct_timeout_obj_destroy() frees the timeout object with kfree() immediately after nf_ct_untimeout(), without waiting for an RCU grace period. Concurrent packet processing on other CPUs may still hold RCU-protected references to the timeout object obtained via rcu_dereference() in nf_ct_timeout_data(). Add an rcu_head to struct nf_ct_timeout and use kfree_rcu() to defer freeing until after an RCU grace period, matching the approach already used in nfnetlink_cttimeout.c. KASAN report: BUG: KASAN: slab-use-after-free in nf_conntrack_tcp_packet+0x1381/0x29d0 Read of size 4 at addr ffff8881035fe19c by task exploit/80 Call Trace: nf_conntrack_tcp_packet+0x1381/0x29d0 nf_conntrack_in+0x612/0x8b0 nf_hook_slow+0x70/0x100 __ip_local_out+0x1b2/0x210 tcp_sendmsg_locked+0x722/0x1580 __sys_sendto+0x2d8/0x320 Allocated by task 75: nft_ct_timeout_obj_init+0xf6/0x290 nft_obj_init+0x107/0x1b0 nf_tables_newobj+0x680/0x9c0 nfnetlink_rcv_batch+0xc29/0xe00 Freed by task 26: nft_obj_destroy+0x3f/0xa0 nf_tables_trans_destroy_work+0x51c/0x5c0 process_one_work+0x2c4/0x5a0

02

Engine v0.2.0

Risk summary

High severity vulnerability allowing potential memory corruption and system crashes through use-after-free conditions during network packet processing. Attackers with network access could potentially trigger this by manipulating netfilter timeout objects while network traffic is active.

Affectednet/netfilter/nft_ct.c

Vulnerability analysis

Summary: Use-after-free vulnerability in netfilter nft_ct timeout object destruction due to improper RCU synchronization

Root Cause: Missing RCU synchronization - the timeout object is freed immediately without respecting RCU grace periods, while concurrent readers may still access it through RCU-protected references

Attack Surface: Network-accessible through TCP packet processing. Requires ability to trigger netfilter timeout object creation and destruction while concurrent network traffic is being processed

Fix Mechanism: Added rcu_head field to struct nf_ct_timeout and replaced kfree() with kfree_rcu() to defer freeing until after RCU grace period, ensuring all RCU readers complete before the object is freed

Details: The vulnerability occurs in nft_ct_timeout_obj_destroy() which immediately frees timeout objects with kfree() after calling nf_ct_untimeout(), without waiting for an RCU grace period. Concurrent packet processing on other CPUs may still hold RCU-protected references to the timeout object obtained via rcu_dereference() in nf_ct_timeout_data(). This creates a race condition where the timeout object can be accessed after being freed, leading to use-after-free conditions during TCP packet processing in nf_conntrack_tcp_packet().

03

BranchFixed inPatch commit
5.105.10.253c458fc1c278a
5.155.15.203c581e5c8f2b5
6.16.1.169f16fe84879a5
6.126.12.82aa7cfa16f98f
6.186.18.23b42aca3660dc
6.196.19.13d0983b48c10d
6.66.6.135070abdf1b043
mainline7.0f8dca15a1b19