| Title | LinuxのLinux Kernelにおける有効なライフタイム後のリソースの解放の欠如に関する脆弱性 |
|---|---|
| Summary | 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がリセット時に未完了コマンドを排出するために使用しているパターンと同様です。 |
| Possible impacts | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | May 1, 2026, midnight |
| Registration Date | May 11, 2026, 10:56 a.m. |
| Last Update | May 11, 2026, 10:56 a.m. |
| CVSS3.0 : 警告 | |
| Score | 5.5 |
|---|---|
| Vector | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| Linux |
| Linux Kernel 5.13 以上 5.15.203 未満 |
| Linux Kernel 5.16 以上 6.1.168 未満 |
| Linux Kernel 6.13 以上 6.18.22 未満 |
| Linux Kernel 6.19 以上 6.19.12 未満 |
| Linux Kernel 6.2 以上 6.6.134 未満 |
| Linux Kernel 6.7 以上 6.12.81 未満 |
| Linux Kernel 7.0 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年05月11日] 掲載 |
May 11, 2026, 10:56 a.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: scsi: target: tcm_loop: Drain commands in target_reset handler tcm_loop_target_reset() violates the SCSI EH contract: it returns SUCCESS Because tcm_loop_target_reset() doesn't drain, the SCSI EH reuses in-flight INFO: task rm:264 blocked for more than 122 seconds. Fix this by making tcm_loop_target_reset() actually drain commands: 1. Issue TMR_LUN_RESET via tcm_loop_issue_tmr() to drain all commands that 2. Use blk_mq_tagset_busy_iter() to iterate all started requests and |
|---|---|
| Publication Date | May 2, 2026, 12:16 a.m. |
| Registration Date | May 2, 2026, 4:07 a.m. |
| Last Update | May 8, 2026, 3:28 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.13 | 5.15.203 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 | 6.1.168 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 | 6.6.134 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 | 6.12.81 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 | 6.18.22 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 | 6.19.12 | |||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | |||||