Description
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.
Metrics
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HWeakness enumeration
Affected software
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= d6732b95b6fbbc6d5bb9d2f809e275763640c4a2, < 6ce7ef41743740ce15c2061561b784148b565b3f; >= d6732b95b6fbbc6d5bb9d2f809e275763640c4a2, < e77fbefd1269b5c123e7c651a1ebdce1b87d19a0; >= d6732b95b6fbbc6d5bb9d2f809e275763640c4a2, < 7ddc29a094d96e9b3aa280433c6dc443df9eabf2; >= d6732b95b6fbbc6d5bb9d2f809e275763640c4a2, < 5ba9950bc9078e19b69cca1e56d1553b125c6857 |
| Linux | Linux | 6.7 |
References
- https://git.kernel.org/stable/c/5ba9950bc9078e19b69cca1e56d1553b125c6857Patch
- https://git.kernel.org/stable/c/6ce7ef41743740ce15c2061561b784148b565b3fPatch
- https://git.kernel.org/stable/c/7ddc29a094d96e9b3aa280433c6dc443df9eabf2Patch
- https://git.kernel.org/stable/c/e77fbefd1269b5c123e7c651a1ebdce1b87d19a0Patch
Timeline
- Published
- Jul 19, 2026
- Last modified
- Aug 17, 2026
- NVD status
- Analyzed