[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230813160605.1080385-6-sashal@kernel.org>
Date: Sun, 13 Aug 2023 12:05:39 -0400
From: Sasha Levin <sashal@...nel.org>
To: linux-kernel@...r.kernel.org, stable@...r.kernel.org
Cc: Namjae Jeon <linkinjeon@...nel.org>,
zdi-disclosures@...ndmicro.com,
Steve French <stfrench@...rosoft.com>,
Sasha Levin <sashal@...nel.org>, brauner@...nel.org,
dchinner@...hat.com, senozhatsky@...omium.org,
viro@...iv.linux.org.uk, ddiss@...e.de, mmakassikis@...ebox.fr
Subject: [PATCH AUTOSEL 5.15 06/31] ksmbd: fix out of bounds in smb3_decrypt_req()
From: Namjae Jeon <linkinjeon@...nel.org>
[ Upstream commit dc318846f3dd54574a36ae97fc8d8b75dd7cdb1e ]
smb3_decrypt_req() validate if pdu_length is smaller than
smb2_transform_hdr size.
Reported-by: zdi-disclosures@...ndmicro.com # ZDI-CAN-21589
Signed-off-by: Namjae Jeon <linkinjeon@...nel.org>
Signed-off-by: Steve French <stfrench@...rosoft.com>
Signed-off-by: Sasha Levin <sashal@...nel.org>
---
fs/ksmbd/smb2pdu.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
index 9f9d07caa57e9..a4673831fc10d 100644
--- a/fs/ksmbd/smb2pdu.c
+++ b/fs/ksmbd/smb2pdu.c
@@ -8642,7 +8642,8 @@ int smb3_decrypt_req(struct ksmbd_work *work)
struct smb2_transform_hdr *tr_hdr = (struct smb2_transform_hdr *)buf;
int rc = 0;
- if (buf_data_size < sizeof(struct smb2_hdr)) {
+ if (pdu_length < sizeof(struct smb2_transform_hdr) ||
+ buf_data_size < sizeof(struct smb2_hdr)) {
pr_err("Transform message is too small (%u)\n",
pdu_length);
return -ECONNABORTED;
--
2.40.1
Powered by blists - more mailing lists