TLSv1.3 alert and handshake messages can never be 0 length
We abort if we read a message like this. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3436)
This commit is contained in:
parent
0b367d7955
commit
fc4c15faa4
1 changed files with 9 additions and 0 deletions
|
@ -644,6 +644,15 @@ int ssl3_get_record(SSL *s)
|
|||
&thisrr->data[end], 1, s, s->msg_callback_arg);
|
||||
}
|
||||
|
||||
if (SSL_IS_TLS13(s)
|
||||
&& (thisrr->type == SSL3_RT_HANDSHAKE
|
||||
|| thisrr->type == SSL3_RT_ALERT)
|
||||
&& thisrr->length == 0) {
|
||||
al = SSL_AD_UNEXPECTED_MESSAGE;
|
||||
SSLerr(SSL_F_SSL3_GET_RECORD, SSL_R_BAD_LENGTH);
|
||||
goto f_err;
|
||||
}
|
||||
|
||||
if (thisrr->length > SSL3_RT_MAX_PLAIN_LENGTH) {
|
||||
al = SSL_AD_RECORD_OVERFLOW;
|
||||
SSLerr(SSL_F_SSL3_GET_RECORD, SSL_R_DATA_LENGTH_TOO_LONG);
|
||||
|
|
Loading…
Reference in a new issue