JVNDB-2026-014754 | |
LinuxのLinux Kernelにおける有効なライフタイム後のリソースの解放の欠如に関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。scsi: target: tcm_loop: target_resetハンドラーでのコマンド排出問題です。tcm_loop_target_reset()はSCSI EHの契約に違反しており、実際にはコマンドを排出せずにSUCCESSを返しています。SCSI EHのドキュメント(scsi_eh.rst)によると、リセットハンドラーがSUCCESSを返す場合、ドライバーは下位層の「タイムアウトしたscmdを忘れておらず」、新しいコマンドの準備ができている必要があると規定されています。他のすべてのSCSI LLD(virtio_scsi、mpt3sas、ipr、scsi_debug、mpi3mr)は、SUCCESSを返す前に保留中のコマンドを排出または完了させることでこれを保証しています。tcm_loop_target_reset()がコマンドを排出しないため、SCSI EHはターゲットコアがまだ古いse_cmdの非同期完了作業を保持している間に回復コマンド(例:TUR)に対してin-flightのscsi_cmnd構造を再利用してしまいます。queuecommand内のmemsetがse_lunとlun_ref_activeをゼロクリアし、transport_lun_remove_cmd()がpercpu_ref_put()の呼び出しをスキップします。このリークしたLUN参照によりtransport_clear_lun_ref()が完了せず、configfsのLUN解除はD状態で永久にハングします。INFO: task rm:264 が122秒以上ブロックされています。rm D 0 264 258 0x00004000 Call Trace: __schedule+0x3d0/0x8e0、schedule+0x36/0xf0、transport_clear_lun_ref+0x78/0x90 [target_core_mod]、core_tpg_remove_lun+0x28/0xb0 [target_core_mod]、target_fabric_port_unlink+0x50/0x60 [target_core_mod]、configfs_unlink+0x156/0x1f0 [configfs]、vfs_unlink+0x109/0x290、do_unlinkat+0x1d5/0x2d0。修正内容は、tcm_loop_target_reset()で実際にコマンドを排出することです。1. tcm_loop_issue_tmr()を介してTMR_LUN_RESETを発行し、ターゲットコアが知っているすべてのコマンド(まだCMD_T_COMPLETEでないもの)を排出します。2. blk_mq_tagset_busy_iter()を用いて開始されたすべてのリクエストを反復処理し、各se_cmdに対してflush_work()を行います。これはTMRの前にすでにCMD_T_COMPLETEがセットされていたコマンドの保留中完了作業を排出するためのものであり(TMRは__target_check_io_state()でこれらをスキップします)、mpi3mr、scsi_debug、libsasがリセット時に未完了コマンドを排出するために使用しているパターンと同様です。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/05/01 |
| 登録日 | 2026/05/11 |
| 最終更新日 | 2026/05/11 |



