CVE-2026-53389

Summary

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

net/tcp-ao: fix use-after-free of key in del_async path

In tcp_ao_delete_key(), the del_async path skips the current_key and rnext_key validity checks present in the synchronous path, assuming these pointers are always NULL on LISTEN sockets. However, if a key was added with set_current=1/set_rnext=1 while the socket was in CLOSE state, current_key and rnext_key will be non-NULL after listen() transitions the socket to LISTEN.

When such a key is deleted with del_async=1, hlist_del_rcu() and call_rcu() free the key without clearing the dangling pointers. After the RCU grace period, getsockopt(TCP_AO_INFO) dereferences current_key->sndid and rnext_key->rcvid from freed slab memory.

Clear current_key and rnext_key in the del_async path when they reference the key being deleted.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxd6732b95b6fbbc6d5bb9d2f809e275763640c4a2 < 6ce7ef41743740ce15c2061561b784148b565b3faffected
LinuxLinuxd6732b95b6fbbc6d5bb9d2f809e275763640c4a2 < e77fbefd1269b5c123e7c651a1ebdce1b87d19a0affected
LinuxLinuxd6732b95b6fbbc6d5bb9d2f809e275763640c4a2 < 7ddc29a094d96e9b3aa280433c6dc443df9eabf2affected
LinuxLinuxd6732b95b6fbbc6d5bb9d2f809e275763640c4a2 < 5ba9950bc9078e19b69cca1e56d1553b125c6857affected
LinuxLinux6.7affected
LinuxLinux0 < 6.7unaffected
LinuxLinux6.12.95 <= 6.12.*unaffected
LinuxLinux6.18.38 <= 6.18.*unaffected
LinuxLinux7.1.3 <= 7.1.*unaffected
LinuxLinux7.2-rc1 <= *unaffected

Weaknesses

References