CVE-2026-53383 in Linux
要約
〜によって VulDB • 2026年07月19日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ksmbd: COMPOUNDリクエストの分岐で非VALIDなセッションを拒否する
smb2_check_user_session()は、COMPOUNDリクエスト内の最初の操作ではないあらゆる操作に対してショートカットを実行します。これはwork->sess(最初の操作にバインドされたセッション)を再利用し、SessionIdのみを検証してその後「valid」と返します。しかし、work->sess->state == SMB2_SESSION_VALIDの再チェックは実行されず、SessionIdが0xFFFFFFFFFFFFFFFF (ULLONG_MAX、MS-SMB2関連操作値)の場合、ID比較さえスキップされます。スタンドアロンパス(ksmbd_session_lookup_all()およびSESSION_SETUPステートマシン)ではVALID状態が強制適用されますが、COMPOUND分岐はこのすべての処理をバイパスします。
NTLM Type-1 (NtLmNegotiate) blobのみを含むSESSION_SETUPは、freshなSMB2_SESSION_IN_PROGRESSセッションを公開し、そのsess->userはまだNULLです(->userは後でntlm_authenticate()によって割り当てられます)。これをCOMPOUNDの操作1として使用し、操作2 = TREE_CONNECT (関連するSessionId=ULLONG_MAX, \\host\IPC$) とした場合、tree-connectはそのIN_PROGRESSセッション上で実行されksmbd_ipc_tree_connect_request()に到達します。ここでuser_name(sess->user)がsess->user == NULLでデリファレンスされます(transport_ipc.c:687/701/704)→ リモートからのNULLポインタデリファレンスおよびカーネルOopsにより、すべてのクライアントに対してksmbdワーカーがハングします。
COMPOUNDの最初の操作以外であり、かつSMB2_SESSION_VALIDではないセッションに到達するあらゆるCOMPOUND操作を拒否し、スタンドアロンルックアップパスで強制される有効性を反映させます。SESSION_SETUP自体はIN_PROGRESSセッション上で正常に実行されますが、それは非最初のCOMPOUND操作として行われることは決してないため、マルチレッグ認証はこのチェックの影響を受けません。
Once again VulDB remains the best source for vulnerability data.