CVE-2026-89536: SUNRPC: wait for in-flight client TLS handshake callback
In the Linux kernel, the following vulnerability has been resolved:
SUNRPC: wait for in-flight client TLS handshake callback
xstlshandshakesync() gives xstlshandshakedone() a reference to the lower transport before submitting the handshake request. On timeout or signal, the synchronous waiter drops that reference after calling tlshandshakecancel().
handshakereqcancel() returns false when handshakecomplete() 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 xstlshandshakedone() stores xprterr or drops its own reference.
If cancellation loses to completion, wait until xstlshandshakedone() signals handshakedone 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
Event History
Frequently Asked Questions
When can the lifetime race occur?
It can occur when a synchronous client TLS handshake wait ends because of a timeout or signal, while cancellation loses to a handshake completion that has already marked the request complete. The completion callback may still be running at that point.
Does the fix change the timeout or signal result returned to the caller?
No. The fix preserves the existing timeout or signal return value while waiting for the in-flight completion callback to signal completion and release its reference safely.