Repository navigation
Fix security review findings - #66
Merged
Merged
Conversation
rthellend
commented
Oct 7, 2026
Contributor
- Conn.Read: reject zero-length handshake records with unexpected_message instead of panicking with an out-of-range index. Any client could trigger the panic after a successful ECH handshake because ECH configs are public. Also guard the same index in inspectWrite and use its record argument.
- processEncryptedClientHello: stop trial decryption after the first key that succeeds. Previously, a later key with the same config_id and cipher suite reused the advanced HPKE context, failed, and cleared the decrypted ClientHelloInner, silently rejecting ECH.
- NewConn: evaluate err when the deferred alert conversion runs, not when the defer statement executes. Alerts were never sent and the connection was never closed on error.
- Transport: update the NewTransport doc to reflect that plaintext HTTP is allowed unless RequireECH is set.
- dns: limit decoded names to 255 octets and labels to 63 octets (RFC 1035 3.1) to bound memory use from compression pointer chains.
- Conn.Read: reject zero-length handshake records with unexpected_message instead of panicking with an out-of-range index. Any client could trigger the panic after a successful ECH handshake because ECH configs are public. Also guard the same index in inspectWrite and use its record argument. - processEncryptedClientHello: stop trial decryption after the first key that succeeds. Previously, a later key with the same config_id and cipher suite reused the advanced HPKE context, failed, and cleared the decrypted ClientHelloInner, silently rejecting ECH. - NewConn: evaluate err when the deferred alert conversion runs, not when the defer statement executes. Alerts were never sent and the connection was never closed on error. - Transport: update the NewTransport doc to reflect that plaintext HTTP is allowed unless RequireECH is set. - dns: limit decoded names to 255 octets and labels to 63 octets (RFC 1035 3.1) to bound memory use from compression pointer chains. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.