[openssl-commits] [openssl] OpenSSL_1_0_2-stable update
Matt Caswell
matt at openssl.org
Tue Jan 9 22:18:40 UTC 2018
The branch OpenSSL_1_0_2-stable has been updated
via da9ed72576a6b21a44df5eb913727838e99ff7c8 (commit)
from a353f94ae693b464bb8ea1b0eb87729142fe6f56 (commit)
- Log -----------------------------------------------------------------
commit da9ed72576a6b21a44df5eb913727838e99ff7c8
Author: Matt Caswell <matt at openssl.org>
Date: Fri Jan 5 10:12:29 2018 +0000
Tolerate DTLS alerts with an incorrect version number
In the case of a protocol version alert being sent by a peer the record
version number may not be what we are expecting. In DTLS records with an
unexpected version number are silently discarded. This probably isn't
appropriate for alerts, so we tolerate a mismatch in the minor version
number.
This resolves an issue reported on openssl-users where an OpenSSL server
chose DTLS1.0 but the client was DTLS1.2 only and sent a protocol_version
alert with a 1.2 record number. This was silently ignored by the server.
Reviewed-by: Viktor Dukhovni <viktor at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5019)
-----------------------------------------------------------------------
Summary of changes:
ssl/d1_pkt.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/ssl/d1_pkt.c b/ssl/d1_pkt.c
index f196b8f..685d50a 100644
--- a/ssl/d1_pkt.c
+++ b/ssl/d1_pkt.c
@@ -706,8 +706,11 @@ int dtls1_get_record(SSL *s)
n2s(p, rr->length);
- /* Lets check version */
- if (!s->first_packet) {
+ /*
+ * Lets check the version. We tolerate alerts that don't have the exact
+ * version number (e.g. because of protocol version errors)
+ */
+ if (!s->first_packet && rr->type != SSL3_RT_ALERT) {
if (version != s->version) {
/* unexpected version, silently discard */
rr->length = 0;
More information about the openssl-commits
mailing list