From: Ivan Pravdin Date: Sun, 18 May 2025 22:41:02 +0000 (-0400) Subject: crypto: algif_hash - fix double free in hash_accept X-Git-Tag: v6.15~23^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b2df03ed4052e97126267e8c13ad4204ea6ba9b6;p=thirdparty%2Fkernel%2Flinux.git crypto: algif_hash - fix double free in hash_accept If accept(2) is called on socket type algif_hash with MSG_MORE flag set and crypto_ahash_import fails, sk2 is freed. However, it is also freed in af_alg_release, leading to slab-use-after-free error. Fixes: fe869cdb89c9 ("crypto: algif_hash - User-space interface for hash operations") Cc: Signed-off-by: Ivan Pravdin Signed-off-by: Herbert Xu --- diff --git a/crypto/algif_hash.c b/crypto/algif_hash.c index 5498a87249d3e..e3f1a4852737b 100644 --- a/crypto/algif_hash.c +++ b/crypto/algif_hash.c @@ -265,10 +265,6 @@ static int hash_accept(struct socket *sock, struct socket *newsock, goto out_free_state; err = crypto_ahash_import(&ctx2->req, state); - if (err) { - sock_orphan(sk2); - sock_put(sk2); - } out_free_state: kfree_sensitive(state);