← All Advisories
Reported from OT-Advisories.com as of

CVE-2026-64581

Last refreshed2026-10-17

Status: UPDATED  |  Advisory ID: CVE-2026-64581

Key Details

CVECVE-2026-64581
CVSS Score / Version
7.8 (High) / CVSS v3.1
Updated2026-10-16
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS Prose
attack vector is local; attack complexity is low; privileges required is low; user interaction is none; scope is unchanged; confidentiality impact is high; integrity impact is high; availability impact is high.
Affected products
Linux Kernel

Affected Products, Subsystems & Sectors

VendorProductAffected VersionsPatch Status
LinuxLinux Kernel
SubsystemsOT Supporting Infrastructure
SectorsAll Sectors

What to Know

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

xfrm: fix sk_dst_cache double-free in xfrm_user_policy()

xfrm_user_policy() clears the socket dst cache with __sk_dst_reset(),

i.e. the non-atomic __sk_dst_set(sk, NULL): it reads sk_dst_cache with

rcu_dereference_protected(), stores NULL and dst_release()s the old dst.

That is only safe if no other thread modifies sk_dst_cache concurrently.

For a connected UDP socket that does not hold: the transmit fast path

(udp_sendmsg -> sk_dst_check -> sk_dst_reset) resets the cache locklessly

with an atomic xchg(). A per-socket policy change racing a send can make

both sides observe the same old dst and each dst_release() it, dropping

the socket's single reference twice and freeing the xfrm_dst bundle while

it is still referenced:

BUG: KASAN: slab-use-after-free in dst_release

Write of size 4 at addr ffff88801897b6c0 by task exploit/155

Call Trace:

...

dst_release (... ./include/linux/rcuref.h:109)

xfrm_user_policy (./include/net/sock.h:2239 ./include/net/sock.h:2256 net/xfrm/xfrm_state.c:3053)

do_ip_setsockopt (net/ipv4/ip_sockglue.c:1347)

ip_setsockopt (net/ipv4/ip_sockglue.c:1417)

do_sock_setsockopt (net/socket.c:2368)

__sys_setsockopt (net/socket.c:2393)

__x64_sys_setsockopt (net/socket.c:2396)

do_syscall_64 (arch/x86/entry/syscall_64.c:94)

entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)

Reachable by an unprivileged user via a user+network namespace.

Use the atomic sk_dst_reset() so the cache is cleared and released with a

single xchg(): whichever side wins releases the dst once, the other sees

NULL and does nothing. Behaviour is otherwise unchanged. (NVD)

What to Do

Monitor Linux's web page for any future patch releases.

References

SourceReference
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-64581
CVEhttps://www.cve.org/CVERecord?id=CVE-2026-64581
Report compilation © 2026 OT-Advisories.com  ·  CC BY 4.0  ·  Source materials remain the property of their respective publishers as cited.