In the Linux kernel, the following vulnerability has been resolved:
mptcp: pm: userspace: fix use-after-free in getlocalid
In mptcppmuserspacegetlocal_id(), the address entry is looked up under spinlock, but its id is read after dropping the lock. A concurrent deletion can free the entry between the unlock and the read, leading to UAF.
The race window is narrow. It was reproduced only with a locally constructed stress test that repeatedly overlaps an MPJOIN SYN with a MPTCPPMCMDSUBFLOW_DESTROY request.
However, the KASAN report below confirms that the race is reachable:
[ 666.319376] BUG: KASAN: slab-use-after-free in mptcpuserspacepmgetlocalid+0x1dc/0x1f0 [ 666.319386] Read of size 1 at addr ffff888124845610 by task swapper/0/0 ... [ 666.319401] Call Trace: [ 666.319405] <IRQ> [ 666.319408] dumpstacklvl+0x53/0x70 [ 666.319412] printaddressdescription.constprop.0+0x2c/0x3b0 [ 666.319418] printreport+0xbe/0x2b0 [ 666.319421] ? mptcpuserspacepmgetlocalid+0x1dc/0x1f0 [ 666.319423] kasanreport+0xce/0x100 [ 666.319426] ? mptcpuserspacepmgetlocalid+0x1dc/0x1f0 [ 666.319429] mptcpuserspacepmgetlocalid+0x1dc/0x1f0 [ 666.319433] mptcppmgetlocalid+0x371/0x440 ... [ 666.319821] Allocated by task 45539: [ 666.319844] kasansavestack+0x33/0x60 [ 666.319855] kasansavetrack+0x14/0x30 [ 666.319858] __kasan_kmalloc+0x8f/0xa0 [ 666.319863] __kmallocnoprof+0x1e7/0x520 [ 666.319867] sockkmalloc+0xdf/0x130 [ 666.319885] sockkmemdup+0x1b/0x40 [ 666.319888] mptcpuserspacepmappendnewlocaladdr+0x261/0x500 [ 666.319910] mptcppmnlannouncedoit+0x16a/0x610 ... [ 666.319967] Freed by task 45560: [ 666.319988] kasansavestack+0x33/0x60 [ 666.319991] kasansavetrack+0x14/0x30 [ 666.319994] kasansavefreeinfo+0x3b/0x60 [ 666.319998] __kasanslabfree+0x43/0x70 [ 666.320000] kfree+0x166/0x440 [ 666.320003] sockkfrees+0x1d/0x50 [ 666.320007] mptcpuserspacepmdeletelocaladdr.isra.0+0x157/0x200 [ 666.320011] mptcppmnlsubflowdestroydoit+0x51d/0xea0
Fix by copying the id into a local variable while still holding the lock, and use -1 as a "not found" sentinel.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68169.json",
"cna_assigner": "Linux"
}