From: Dr. Stephen Henson Date: Wed, 4 Jan 2012 23:03:40 +0000 (+0000) Subject: Check GOST parameters are not NULL (CVE-2012-0027) X-Git-Tag: master-pre-reformat~1953 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6bf896d9b1693916d9e8d303f9e3cc04959632b2;p=openssl Check GOST parameters are not NULL (CVE-2012-0027) --- diff --git a/CHANGES b/CHANGES index 7c31eadb7a..f310a75075 100644 --- a/CHANGES +++ b/CHANGES @@ -261,6 +261,9 @@ *) Add support for SCTP. [Robin Seggelmann ] + *) Check parameters are not NULL in GOST ENGINE. (CVE-2012-0027) + [Andrey Kulikov ] + *) Prevent malformed RFC3779 data triggering an assertion failure. Thanks to Andrew Chi, BBN Technologies, for discovering the flaw and Rob Austein for fixing it. (CVE-2011-4577) diff --git a/engines/ccgost/gost2001_keyx.c b/engines/ccgost/gost2001_keyx.c index 00759bcab0..c748102857 100644 --- a/engines/ccgost/gost2001_keyx.c +++ b/engines/ccgost/gost2001_keyx.c @@ -280,6 +280,10 @@ int pkey_GOST01cp_decrypt(EVP_PKEY_CTX *pctx, unsigned char *key, size_t * key_l } param = get_encryption_params(gkt->key_agreement_info->cipher); + if(!param){ + goto err; + } + gost_init(&ctx,param->sblock); OPENSSL_assert(gkt->key_agreement_info->eph_iv->length==8); memcpy(wrappedKey,gkt->key_agreement_info->eph_iv->data,8); diff --git a/engines/ccgost/gost94_keyx.c b/engines/ccgost/gost94_keyx.c index 624be586a5..0d7d3ffe6a 100644 --- a/engines/ccgost/gost94_keyx.c +++ b/engines/ccgost/gost94_keyx.c @@ -261,6 +261,10 @@ int pkey_GOST94cp_decrypt(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *key_len } param = get_encryption_params(gkt->key_agreement_info->cipher); + if(!param){ + goto err; + } + gost_init(&cctx,param->sblock); OPENSSL_assert(gkt->key_agreement_info->eph_iv->length==8); memcpy(wrappedKey,gkt->key_agreement_info->eph_iv->data,8);