Skip to content

Commit 3cb2b2e

Browse files
namjaejeongregkh
authored andcommitted
ksmbd: fix type confusion via race condition when using ipc_msg_send_request
commit e2ff19f upstream. req->handle is allocated using ksmbd_acquire_id(&ipc_ida), based on ida_alloc. req->handle from ksmbd_ipc_login_request and FSCTL_PIPE_TRANSCEIVE ioctl can be same and it could lead to type confusion between messages, resulting in access to unexpected parts of memory after an incorrect delivery. ksmbd check type of ipc response but missing add continue to check next ipc reponse. Cc: stable@vger.kernel.org Reported-by: Norbert Szetei <norbert@doyensec.com> Tested-by: Norbert Szetei <norbert@doyensec.com> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent d335fce commit 3cb2b2e

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

fs/smb/server/transport_ipc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ static int handle_response(int type, void *payload, size_t sz)
281281
if (entry->type + 1 != type) {
282282
pr_err("Waiting for IPC type %d, got %d. Ignore.\n",
283283
entry->type + 1, type);
284+
continue;
284285
}
285286

286287
entry->response = kvzalloc(sz, GFP_KERNEL);

0 commit comments

Comments
 (0)