x/net/quic: INITIAL is not RFC 9000 compliant #70264
Labels
NeedsInvestigation
Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone
Go version
golang.org/x/net v0.31.0
Output of
go env
in your module/workspace:What did you do?
Create an outgoing connection with the QUIC library
What did you see happen?
The first UDP packet sent by the QUIC client is padded up to 1200 bytes.
The padding is done by appending 'raw' zeros past the Initial packet, which is not spec compliant.
RFC 9000 says:
x/net/quic currently uses coalescing (the Initial Packet ends before the UDP datagram payload ends). Rules on coalescing:
QUIC makes no specific allowance to coalesce a QUIC packet with zeros into a UDP datagram.
Many QUIC servers try to parse the zeros sent by x/net/quic, and interpret it as garbage data.
What did you expect to see?
x/net/quic should append padding frames to increase the size of the Initial Packet to 1200.
On the wire, this would look like random bytes (the zero padding is encrypted)
The text was updated successfully, but these errors were encountered: