From 65b26e325a331c9ee8e8130b3cf00cbf3d306783 Mon Sep 17 00:00:00 2001 From: Tobias Brunner 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