]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
crypto: algif_hash - fix double free in hash_accept
authorIvan Pravdin <ipravdin.official@gmail.com>
Sun, 18 May 2025 22:41:02 +0000 (18:41 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Jun 2025 12:37:07 +0000 (14:37 +0200)
commit b2df03ed4052e97126267e8c13ad4204ea6ba9b6 upstream.

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: <stable@vger.kernel.org>
Signed-off-by: Ivan Pravdin <ipravdin.official@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
crypto/algif_hash.c

index 50f7b22f1b4825342bb1bebe13c7c26012953c58..be21cfdc6dbcd1fd75290e9d6466da9bc78ad1c3 100644 (file)
@@ -262,10 +262,6 @@ static int hash_accept(struct socket *sock, struct socket *newsock, int flags,
                return err;
 
        err = crypto_ahash_import(&ctx2->req, state);
-       if (err) {
-               sock_orphan(sk2);
-               sock_put(sk2);
-       }
 
        return err;
 }