cleanse stack variable in kdf_pbkdf1_do_derive
authorNeil Horman <nhorman@openssl.org>
Wed, 3 Jan 2024 18:47:05 +0000 (13:47 -0500)
committerNeil Horman <nhorman@openssl.org>
Fri, 5 Jan 2024 19:25:55 +0000 (14:25 -0500)
kdf_pbkdf1_do_derive stores key derivation information in a stack
variable, which is left uncleansed prior to returning.  Ensure that the
stack information is zeroed prior to return to avoid potential leaks of
key information

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23194)

providers/implementations/kdfs/pbkdf1.c

index 4fa6afd104a26dad37b0ca47d8749116fe0c2db7..33e0ee6009ed0a3fef4b901d7b7db75ed6f3bb87 100644 (file)
@@ -89,6 +89,7 @@ static int kdf_pbkdf1_do_derive(const unsigned char *pass, size_t passlen,
     memcpy(out, md_tmp, n);
     ret = 1;
 err:
+    OPENSSL_cleanse(md_tmp, EVP_MAX_MD_SIZE);
     EVP_MD_CTX_free(ctx);
     return ret;
 }