]> git.ipfire.org Git - thirdparty/kernel/linux.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)
committerSteve French <stfrench@microsoft.com>
Wed, 24 Dec 2025 17:07:15 +0000 (11:07 -0600)
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>
fs/smb/client/fs_context.c

index c2de97e4ad59d7199c7bf0f097a6d57802bdc32f..d4291d3a9a485880123b7e45567d21bcc07673cf 100644 (file)
@@ -1139,6 +1139,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;
        }