summaryrefslogtreecommitdiff
path: root/fs/ksmbd/smb2pdu.c
diff options
context:
space:
mode:
authorNamjae Jeon <linkinjeon@kernel.org>2023-05-03 02:42:21 +0300
committerSteve French <stfrench@microsoft.com>2023-05-04 07:03:01 +0300
commitea174a91893956450510945a0c5d1a10b5323656 (patch)
treead6c0cf2673430e70277868a0ec072c5849bd191 /fs/ksmbd/smb2pdu.c
parentf5c779b7ddbda30866cf2a27c63e34158f858c73 (diff)
downloadlinux-ea174a91893956450510945a0c5d1a10b5323656.tar.xz
ksmbd: destroy expired sessions
client can indefinitely send smb2 session setup requests with the SessionId set to 0, thus indefinitely spawning new sessions, and causing indefinite memory usage. This patch limit to the number of sessions using expired timeout and session state. Cc: stable@vger.kernel.org Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-20478 Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/ksmbd/smb2pdu.c')
-rw-r--r--fs/ksmbd/smb2pdu.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
index 96974feb6d28..51cc1dfb9260 100644
--- a/fs/ksmbd/smb2pdu.c
+++ b/fs/ksmbd/smb2pdu.c
@@ -1838,6 +1838,7 @@ out_err:
if (sess->user && sess->user->flags & KSMBD_USER_FLAG_DELAY_SESSION)
try_delay = true;
+ sess->last_active = jiffies;
sess->state = SMB2_SESSION_EXPIRED;
if (try_delay)
ssleep(5);