CVE-2026-31718 in Linux情報

要約

〜によって VulDB • 2026年05月14日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

ksmbd: __ksmbd_close_fd() における durable scavenger 経由の use-after-free を修正

永続的なファイルハンドルがセッション切断(SMB2_LOGOFF を伴わないTCP切断)後も生存している場合、session_fd_check() は後続の再接続のためにハンドルを保持するため fp->conn = NULL を設定します。しかし、fp->lock_list 上のバイト範囲ロックのクリーンアップは行われませんでした。

その後、永続的なスキャンジャー(durable scavenger)スレッドがタイムアウトして __ksmbd_close_fd(NULL, fp) を呼び出す際、ロッククリーンアップループは以下の処理を実行しました:

spin_lock(&fp->conn->llist_lock);

これにより、fp->conn が NULL であり、かつ元の接続オブジェクトが ksmbd_tcp_disconnect() によって既に解放されていたため、slab における use-after-free が発生しました。

根本原因は非対称なクリーンアップ処理です。ロックエントリ(smb_lock->clist)は、fp->conn が NULL に設定された後も、解放された conn->lock_list 上にダングリングした状態で残っていました。

この問題を適切に修正するには、smb_lock->clist のライフタイムを以下の3つのパスで処理する必要があります: - リストが空で fp->conn が NULL の場合、clist の削除を安全にスキップする。 - session_fd_check() において、古い接続の lock_list からロックを削除する。 - ksmbd_reopen_durable_fd() において、新しい接続の lock_list にロックを再追加する。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

責任者

Linux

予約する

2026年03月09日

モデレーション

承諾済み

エントリ

VDB-360593

EPSS

0.00066

アクティビティ

非常低い

ソース

Do you want to use VulDB in your project?

Use the official API to access entries easily!