Add PSS parameter check.
authorDr. Stephen Henson <steve@openssl.org>
Fri, 2 Oct 2015 12:10:29 +0000 (13:10 +0100)
committerRichard Levitte <levitte@openssl.org>
Thu, 3 Dec 2015 12:45:13 +0000 (13:45 +0100)
Avoid seg fault by checking mgf1 parameter is not NULL. This can be
triggered during certificate verification so could be a DoS attack
against a client or a server enabling client authentication.

Thanks to Loïc Jonas Etienne (Qnective AG) for discovering this bug.

CVE-2015-3194

Reviewed-by: Matt Caswell <matt@openssl.org>
crypto/rsa/rsa_ameth.c

index 93e071de75e2a8162578f06af24352b5a3bb3c20..c7f1148a1ded13d62263c357c4b76aa85e4d7870 100644 (file)
@@ -279,7 +279,7 @@ static RSA_PSS_PARAMS *rsa_pss_decode(const X509_ALGOR *alg,
     if (pss->maskGenAlgorithm) {
         ASN1_TYPE *param = pss->maskGenAlgorithm->parameter;
         if (OBJ_obj2nid(pss->maskGenAlgorithm->algorithm) == NID_mgf1
-            && param->type == V_ASN1_SEQUENCE) {
+            && param && param->type == V_ASN1_SEQUENCE) {
             p = param->value.sequence->data;
             plen = param->value.sequence->length;
             *pmaskHash = d2i_X509_ALGOR(NULL, &p, plen);