]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
ssl: ensure the client version is valid by checking hello flags
authorPhilippe Antoine <contact@catenacyber.fr>
Tue, 6 Oct 2020 18:49:19 +0000 (20:49 +0200)
committerVictor Julien <victor@inliniac.net>
Wed, 7 Oct 2020 16:41:09 +0000 (18:41 +0200)
src/app-layer-ssl.c

index b6e5a7dcaa04214be6e1f79758b3a320296b6b14..19b3f131f7b4962f15f800e9330f6948b72fc697 100644 (file)
@@ -2281,7 +2281,9 @@ static int SSLv3Decode(uint8_t direction, SSLState *ssl_state,
             if (ssl_state->flags & SSL_AL_FLAG_CHANGE_CIPHER_SPEC) {
                 /* In TLSv1.3, ChangeCipherSpec is only used for middlebox
                    compability (rfc8446, appendix D.4). */
-                if ((ssl_state->client_connp.version > TLS_VERSION_12) &&
+                // Client hello flags is needed to have a valid version
+                if ((ssl_state->flags & SSL_AL_FLAG_STATE_CLIENT_HELLO) &&
+                    (ssl_state->client_connp.version > TLS_VERSION_12) &&
                        ((ssl_state->flags & SSL_AL_FLAG_STATE_SERVER_HELLO) == 0)) {
                     /* do nothing */
                 } else {