CVE-2026-89536

Summary

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

SUNRPC: wait for in-flight client TLS handshake callback

xs_tls_handshake_sync() gives xs_tls_handshake_done() a reference to the lower transport before submitting the handshake request. On timeout or signal, the synchronous waiter drops that reference after calling tls_handshake_cancel().

handshake_req_cancel() returns false when handshake_complete() has already marked the request complete. In that case the completion callback can still be running, so dropping the callback-owned reference in the waiter can free the lower transport before xs_tls_handshake_done() stores xprt_err or drops its own reference.

If cancellation loses to completion, wait until xs_tls_handshake_done() signals handshake_done and let the callback release its reference. This mirrors the server-side handshake lifetime handling and keeps the timeout or signal return value unchanged.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux75eb6af7acdf566c68d61e98e67ee2f235201c02 < 15431820f448e09f8029b670d5c82aa5917d4625affected
LinuxLinux75eb6af7acdf566c68d61e98e67ee2f235201c02 < 1de391e8b94e31b45c19c16dbf315e294810c7deaffected
LinuxLinux75eb6af7acdf566c68d61e98e67ee2f235201c02 < 7fbb6d2ab0391eb8d1f1a68e6bc263ef02cea61baffected
LinuxLinux75eb6af7acdf566c68d61e98e67ee2f235201c02 < a89dd597458848b463d284b15e42a8078beeb046affected
LinuxLinux6.5affected
LinuxLinux0 < 6.5unaffected
LinuxLinux6.12.109 <= 6.12.*unaffected
LinuxLinux6.18.50 <= 6.18.*unaffected
LinuxLinux7.2.4 <= 7.2.*unaffected
LinuxLinux7.3-rc1 <= *unaffected

Weaknesses

References