]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
cifs: Fix memory and information leak in smb3_reconfigure()
authorZilin Guan <zilin@seu.edu.cn>
Wed, 24 Dec 2025 15:21:42 +0000 (15:21 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 Jan 2026 11:57:04 +0000 (12:57 +0100)
[ Upstream commit cb6d5aa9c0f10074f1ad056c3e2278ad2cc7ec8d ]

In smb3_reconfigure(), if smb3_sync_session_ctx_passwords() fails, the
function returns immediately without freeing and erasing the newly
allocated new_password and new_password2. This causes both a memory leak
and a potential information leak.

Fix this by calling kfree_sensitive() on both password buffers before
returning in this error case.

Fixes: 0f0e357902957 ("cifs: during remount, make sure passwords are in sync")
Signed-off-by: Zilin Guan <zilin@seu.edu.cn>
Reviewed-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/smb/client/fs_context.c

index 2a0d8b87bd8ea83653e126e578fb1c274e5a43ae..d8bd3cdc535df75a566d7ad88856c5898b368abf 100644 (file)
@@ -1080,6 +1080,8 @@ static int smb3_reconfigure(struct fs_context *fc)
        rc = smb3_sync_session_ctx_passwords(cifs_sb, ses);
        if (rc) {
                mutex_unlock(&ses->session_mutex);
+               kfree_sensitive(new_password);
+               kfree_sensitive(new_password2);
                return rc;
        }