GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel sunrpc: TLS handshake cancel race re-enters the handshake and corrupts the completion queue

CVSS 9.8CVE-2026-72221Kernel, userspace & hypervisorcurated

Impact

When the server-side TLS handshake wait in svc_tcp_handshake() times out or is interrupted and tls_handshake_cancel() then loses the race, the code inspects xpt_flags before the completion callback has committed its side effects. One ordering lets the dispatcher see XPT_HANDSHAKE still set and invoke xpo_handshake a second time, so init_completion() runs on sk_handshake_done while the first callback is calling complete_all() on it - the embedded swait_queue is corrupted. The other ordering tears down a connection that was about to succeed. This is on the RPC-with-TLS server path, i.e. NFS servers exporting datasets to GPU nodes with xprtsec enabled; signal delivery alone is enough to enter the window, so it is not a rare timing fluke. Expect kernel-side instability on the file server rather than a clean failure.

Who can reach it

Reachable on any RPC server with TLS enabled whenever a connection close or a signal overlaps the tlshd downcall window. An unauthenticated client that can open and drop TLS connections to the server influences the timing; no credentials are needed to reach the handshake path.

What to do

Apply the stable-kernel fix, which waits for the callback to commit before inspecting xpt_flags. Kernel update plus reboot on each NFS/RPC server; failover first if clustered. Disabling xprtsec/TLS on the server removes the path entirely but gives up on-the-wire encryption. No vendor advisory beyond the kernel stable commits is present in the record.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.