QUIC: check that the packet length is of at least sample size.

From quic-tls draft, section 5.4.2:
   An endpoint MUST discard packets that are not long enough to contain
   a complete sample.

The check includes the Packet Number field assumed to be 4 bytes long.
This commit is contained in:
Sergey Kandaurov 2020-09-08 13:28:56 +03:00
parent 952c6f1989
commit d8360f912a

View File

@ -1019,6 +1019,10 @@ ngx_quic_decrypt(ngx_quic_header_t *pkt, ngx_ssl_conn_t *ssl_conn,
* AES-Based and ChaCha20-Based header protections sample 16 bytes
*/
if (pkt->len < EVP_GCM_TLS_TAG_LEN + 4) {
return NGX_DECLINED;
}
sample = p + 4;
/* header protection */