crypto/tls: Large session tickets in Go 1.21 can cause Windows Schannel clients to be unable to connect #63763
Labels
NeedsInvestigation
Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
OS-Windows
Security
Milestone
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
See https://github.com/printfn/golang-tls-session-ticket-bug for a minimal example and reproduction steps.
In Go 1.21, client TLS certificates are included in session tickets by default. When the client cert chain is very long (or the certificate is otherwise very large), the session ticket grows as well, eventually preventing Windows Schannel clients from being able to connect.
Changing the
WrapTicket
implementation to return a shorter session ticket (e.g.return []byte{0}, nil
) works around the issue.This bug happens on the current latest version of Windows 11 (22H2, build 22621.2428). It worked fine on Go 1.20 and earlier, but is broken as of Go 1.21.0. It's worth noting that the Golang TLS client is still able to connect.
The text was updated successfully, but these errors were encountered: