summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorLuxiao Xu <rakukuip@gmail.com>2026-10-16 15:11:01 +0800
committerPaulo Alcantara <pc@manguebit.org>2026-10-21 22:56:17 -0300
commit73cc469b0ff7551f8537ea919709973e6dc4f514 (patch)
treec82c8d168d5a045c7528b2a7388a606be92a9094 /tools/perf/scripts/python
parent83d0d5e0ca22233c75daf139ec0063b9d2ff1ac7 (diff)
downloadlinux-73cc469b0ff7551f8537ea919709973e6dc4f514.tar.gz
linux-73cc469b0ff7551f8537ea919709973e6dc4f514.zip
smb: client: fix buffer overflow in SMB2_tcon()
In SMB2_tcon(), unc_path is allocated with a fixed buffer size of MAX_SHARENAME_LENGTH * 2 bytes (672 bytes). However, the user-controlled UNC path (tree) length is passed to cifs_strtoUTF16(), which assumes the destination buffer is large enough and writes strlen(tree) + 1 UTF-16 code units. Commit 62a1a439e0fd ("cifs: clean up handling of unc= option") removed the length check on UNC mount options, allowing mount paths to exceed MAX_SHARENAME_LENGTH while retaining the fixed-size buffer allocation in SMB2_tcon(). Consequently, an oversized UNC string causes cifs_strtoUTF16() to write past the end of the heap object, resulting in a slab-out-of-bounds write. Furthermore, if a tree exceeds MAX_TREE_SIZE characters, strscpy() truncates it in cifs_tcon::tree_name, causing subsequent reconnects or failovers to fail. Fix this by first verifying that the length of tree does not exceed MAX_TREE_SIZE, returning -EINVAL if it does. Then, dynamically allocate unc_path based on the length of tree so that it safely accommodates all UTF-16 code units for paths within MAX_TREE_SIZE. Fixes: 62a1a439e0fd ("cifs: clean up handling of unc= option") Cc: stable@vger.kernel.org Reported-by: Xin Liu <bird@lzu.edu.cn> Closes: https://bugtracker.nebusec.ai/f/3292 Assisted-by: LLM Suggested-by: Paulo Alcantara <pc@manguebit.org> Signed-off-by: Luxiao Xu <rakukuip@gmail.com> Signed-off-by: Ren Wei <n05ec@lzu.edu.cn> [pc: remove unused MAX_SHARENAME_LENGTH] Signed-off-by: Paulo Alcantara <pc@manguebit.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions