Ensure SSL3_FLAGS_CCS_OK (or d1->change_cipher_spec_ok for DTLS) is reset
once the ChangeCipherSpec message is received. Previously, the server would
set the flag once at SSL3_ST_SR_CERT_VRFY and again at SSL3_ST_SR_FINISHED.
This would allow a second CCS to arrive and would corrupt the server state.
(Because the first CCS would latch the correct keys and subsequent CCS
messages would have to be encrypted, a MitM attacker cannot exploit this,
though.)
Thanks to Joeri de Ruiter for reporting this issue.
Reviewed-by: Matt Caswell <matt@openssl.org>
(cherry picked from commit e94a6c0ede
)
This commit is contained in:
@@ -2560,7 +2560,7 @@ static int ssl_scan_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char
|
||||
#ifndef OPENSSL_NO_NEXTPROTONEG
|
||||
s->s3->next_proto_neg_seen = 0;
|
||||
#endif
|
||||
s->tlsext_ticket_expected = 0;
|
||||
s->tlsext_ticket_expected = 0;
|
||||
|
||||
if (s->s3->alpn_selected)
|
||||
{
|
||||
|
Reference in New Issue
Block a user