Description
Description
RFC 9000 12.5. Frames and Number Spaces forbids RETIRE_CONNECTION_ID in 0-RTT packets:
"Note that it is not possible to send the following frames in 0-RTT packets for various reasons: HANDSHAKE_DONE, .. RETIRE_CONNECTION_ID."
The QuicSendWriteFrames
function correctly excludes HANDSHAKE_DONE from 0-RTT packets:
Lines 648 to 649 in 31d2b73
However, it does not perform a similar check for RETIRE_CONNECTION_ID:
Lines 859 to 895 in 31d2b73
As a result, RETIRE_CONNECTION_ID frames may be incorrectly included in 0-RTT packets, violating the QUIC transport specification.
Suggested Fix
Insert a conditional check in line 859 to restrict the emission of RETIRE_CONNECTION_ID frames to 1-RTT packets only: if (Builder->Metadata->Flags.KeyType == QUIC_PACKET_KEY_1_RTT &&
.