crypto: authenc - don't leak pointers to authenc keys
authorTudor-Dan Ambarus <tudor.ambarus@microchip.com>
Tue, 3 Apr 2018 06:39:00 +0000 (09:39 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Aug 2018 05:50:40 +0000 (07:50 +0200)
[ Upstream commit ad2fdcdf75d169e7a5aec6c7cb421c0bec8ec711 ]

In crypto_authenc_setkey we save pointers to the authenc keys in
a local variable of type struct crypto_authenc_keys and we don't
zeroize it after use. Fix this and don't leak pointers to the
authenc keys.

Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
crypto/authenc.c

index 875470b..0db344d 100644 (file)
@@ -108,6 +108,7 @@ static int crypto_authenc_setkey(struct crypto_aead *authenc, const u8 *key,
                                       CRYPTO_TFM_RES_MASK);
 
 out:
+       memzero_explicit(&keys, sizeof(keys));
        return err;
 
 badkey: