From 21c4b259598efe3ea8c834c1568e8b762be120c4 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Wed, 4 Jan 2012 18:52:18 +0000 Subject: Only allow one SGC handshake restart for SSL/TLS. (CVE-2011-4619) --- ssl/ssl3.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'ssl/ssl3.h') diff --git a/ssl/ssl3.h b/ssl/ssl3.h index 2f579c253b..b9a85effa0 100644 --- a/ssl/ssl3.h +++ b/ssl/ssl3.h @@ -333,6 +333,17 @@ typedef struct ssl3_buffer_st #define SSL3_FLAGS_DELAY_CLIENT_FINISHED 0x0002 #define SSL3_FLAGS_POP_BUFFER 0x0004 #define TLS1_FLAGS_TLS_PADDING_BUG 0x0008 + +/* SSL3_FLAGS_SGC_RESTART_DONE is set when we + * restart a handshake because of MS SGC and so prevents us + * from restarting the handshake in a loop. It's reset on a + * renegotiation, so effectively limits the client to one restart + * per negotiation. This limits the possibility of a DDoS + * attack where the client handshakes in a loop using SGC to + * restart. Servers which permit renegotiation can still be + * effected, but we can't prevent that. + */ +#define SSL3_FLAGS_SGC_RESTART_DONE 0x0040 typedef struct ssl3_state_st { -- cgit v1.2.3