Message ID | 20230206143259.585180-1-emil.l.velikov@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | libkmod: error out on unknown hash algorithm | expand |
On Mon, 06 Feb 2023 14:32:59 +0000, Emil Velikov wrote: > Currently if we see unknown algorithm, we'll do an OOB read in > pkey_hash_algo. This can happen for example if OPENSSL_NO_SM3 is set and > the kernel module uses a SM3 hash. > > Applied, thanks! [1/1] libkmod: error out on unknown hash algorithm commit: b9605c63b859adfffc0b4b9420d720aa323b90e9 Best regards,
diff --git a/libkmod/libkmod-signature.c b/libkmod/libkmod-signature.c index 092f396..b749a81 100644 --- a/libkmod/libkmod-signature.c +++ b/libkmod/libkmod-signature.c @@ -219,6 +219,7 @@ static bool fill_pkcs7(const char *mem, off_t size, unsigned char *key_id_str; struct pkcs7_private *pvt; const char *issuer_str; + int hash_algo; size -= sig_len; pkcs7_raw = mem + size; @@ -277,7 +278,10 @@ static bool fill_pkcs7(const char *mem, off_t size, X509_ALGOR_get0(&o, NULL, NULL, dig_alg); - sig_info->hash_algo = pkey_hash_algo[obj_to_hash_algo(o)]; + hash_algo = obj_to_hash_algo(o); + if (hash_algo < 0) + goto err3; + sig_info->hash_algo = pkey_hash_algo[hash_algo]; // hash algo has not been recognized if (sig_info->hash_algo == NULL) goto err3;