diff --git a/ChangeLog b/ChangeLog index ab1b78bad..3d8560487 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,8 @@ Security * With authmode set to SSL_VERIFY_OPTIONAL, verification of keyUsage and extendedKeyUsage on the leaf certificate was lost (results not accessible via ssl_get_verify_results()). + * Add countermeasure against "Lucky 13 strikes back" cache-based attack, + https://dl.acm.org/citation.cfm?id=2714625 Features * Add x509_crt_verify_info() to display certificate verification results. diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 72cd6d21a..f079adc45 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1825,7 +1825,8 @@ static int ssl_decrypt_buf( ssl_context *ssl ) ssl->in_msglen ); md_hmac_finish( &ssl->transform_in->md_ctx_dec, ssl->in_msg + ssl->in_msglen ); - for( j = 0; j < extra_run; j++ ) + /* Call md_process at least once due to cache attacks */ + for( j = 0; j < extra_run + 1; j++ ) md_process( &ssl->transform_in->md_ctx_dec, ssl->in_msg ); md_hmac_reset( &ssl->transform_in->md_ctx_dec );