From: Guido Vranken Date: Mon, 11 Jun 2018 17:38:54 +0000 (+0200) Subject: Reject excessively large primes in DH key generation. X-Git-Tag: OpenSSL_1_1_0i~87 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ea7abeeabf92b7aca160bdd0208636d4da69f4f4;p=oweals%2Fopenssl.git Reject excessively large primes in DH key generation. CVE-2018-0732 Signed-off-by: Guido Vranken (cherry picked from commit 91f7361f47b082ae61ffe1a7b17bb2adf213c7fe) Reviewed-by: Tim Hudson Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/6457) --- diff --git a/crypto/dh/dh_key.c b/crypto/dh/dh_key.c index fce9ff47f3..58003d7087 100644 --- a/crypto/dh/dh_key.c +++ b/crypto/dh/dh_key.c @@ -78,10 +78,15 @@ static int generate_key(DH *dh) int ok = 0; int generate_new_key = 0; unsigned l; - BN_CTX *ctx; + BN_CTX *ctx = NULL; BN_MONT_CTX *mont = NULL; BIGNUM *pub_key = NULL, *priv_key = NULL; + if (BN_num_bits(dh->p) > OPENSSL_DH_MAX_MODULUS_BITS) { + DHerr(DH_F_GENERATE_KEY, DH_R_MODULUS_TOO_LARGE); + return 0; + } + ctx = BN_CTX_new(); if (ctx == NULL) goto err;