From 65b26e325a331c9ee8e8130b3cf00cbf3d306783 Mon Sep 17 00:00:00 2001
From: Tobias Brunner <tobias@strongswan.org>
Date: Mon, 4 Dec 2017 10:51:47 +0100
Subject: [PATCH] signature-params: Properly handle MGF1 algorithm identifier
 without parameters

Credit to OSS-Fuzz.

Fixes: CVE-2018-6459
---
 src/libstrongswan/credentials/keys/signature_params.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/libstrongswan/credentials/keys/signature_params.c b/src/libstrongswan/credentials/keys/signature_params.c
index 6b4d22e7b2cd..8f42fb940f6b 100644
--- a/src/libstrongswan/credentials/keys/signature_params.c
+++ b/src/libstrongswan/credentials/keys/signature_params.c
@@ -280,13 +280,17 @@ bool rsa_pss_params_parse(chunk_t asn1, int level0, rsa_pss_params_t *params)
 			case RSASSA_PSS_PARAMS_MGF_ALG:
 				if (object.len)
 				{
-					chunk_t hash;
+					chunk_t hash = chunk_empty;
 
 					alg = asn1_parse_algorithmIdentifier(object, level, &hash);
 					if (alg != OID_MGF1)
 					{
 						goto end;
 					}
+					if (!hash.len)
+					{
+						goto end;
+					}
 					alg = asn1_parse_algorithmIdentifier(hash, level+1, NULL);
 					params->mgf1_hash = hasher_algorithm_from_oid(alg);
 					if (params->mgf1_hash == HASH_UNKNOWN)
-- 
2.7.4

