]> git.ipfire.org Git - thirdparty/linux.git/commit
ksmbd: fix OOB write in QUERY_INFO for compound requests
authorAsim Viladi Oglu Manizada <manizada@pm.me>
Wed, 25 Mar 2026 00:14:22 +0000 (09:14 +0900)
committerSteve French <stfrench@microsoft.com>
Mon, 30 Mar 2026 03:07:45 +0000 (22:07 -0500)
commitfda9522ed6afaec45cabc198d8492270c394c7bc
treedb3216e8a8aaccfd54379c56b965bea3f39c46f5
parent7aaa8047eafd0bd628065b15757d9b48c5f9c07d
ksmbd: fix OOB write in QUERY_INFO for compound requests

When a compound request such as READ + QUERY_INFO(Security) is received,
and the first command (READ) consumes most of the response buffer,
ksmbd could write beyond the allocated buffer while building a security
descriptor.

The root cause was that smb2_get_info_sec() checked buffer space using
ppntsd_size from xattr, while build_sec_desc() often synthesized a
significantly larger descriptor from POSIX ACLs.

This patch introduces smb_acl_sec_desc_scratch_len() to accurately
compute the final descriptor size beforehand, performs proper buffer
checking with smb2_calc_max_out_buf_len(), and uses exact-sized
allocation + iov pinning.

Cc: stable@vger.kernel.org
Fixes: e2b76ab8b5c9 ("ksmbd: add support for read compound")
Signed-off-by: Asim Viladi Oglu Manizada <manizada@pm.me>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/server/smb2pdu.c
fs/smb/server/smbacl.c
fs/smb/server/smbacl.h