]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
smb: client: fix potential UAF in smb2_close_cached_fid()
authorHenrique Carvalho <henrique.carvalho@suse.com>
Mon, 3 Nov 2025 22:52:55 +0000 (19:52 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:37:46 +0000 (15:37 -0500)
commitbdb596ceb4b7c3f28786a33840263728217fbcf5
tree6dde929be49b3f3f6bbe69edbe8668ec9b2e0802
parent826ce37a842633efe1bb763e4b13045d74060d72
smb: client: fix potential UAF in smb2_close_cached_fid()

commit 734e99623c5b65bf2c03e35978a0b980ebc3c2f8 upstream.

find_or_create_cached_dir() could grab a new reference after kref_put()
had seen the refcount drop to zero but before cfid_list_lock is acquired
in smb2_close_cached_fid(), leading to use-after-free.

Switch to kref_put_lock() so cfid_release() is called with
cfid_list_lock held, closing that gap.

Fixes: ebe98f1447bb ("cifs: enable caching of directories for which a lease is held")
Cc: stable@vger.kernel.org
Reported-by: Jay Shin <jaeshin@redhat.com>
Reviewed-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
Signed-off-by: Henrique Carvalho <henrique.carvalho@suse.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/smb/client/cached_dir.c