CVE-2026-72083 in Linux
要約
〜によって VulDB • 2026年08月15日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
scsi: target: core: REGISTER AND MOVEにおけるiSCSI ISIDのuse-after-freeを修正する
core_scsi3_emulate_pro_register_and_move()関数は、transport_kmap_data_sg()を使用してPERSISTENT RESERVE OUTパラメータリストをマップし、target_parse_pr_out_transport_id()で宛先TransportIDを解析します。iSCSI TransportID(FORMAT CODE 01b)の場合、iscsi_parse_pr_out_transport_id()は、そのマップされたバッファ内の生ポインタとしてISIDをiport_ptrに返します。
その後、関数はstrcmp()、__core_scsi3_locate_pr_reg()、およびcore_scsi3_alloc_registration()でiport_ptrを間接参照する前に、transport_kunmap_data_sg()を使用してバッファのアンマップを行います。パラメータリストが1ページを超える場合(PARAMETER LIST LENGTH > 4096)、transport_kmap_data_sg()はvmap()を使用し、transport_kunmap_data_sg()はvunmap()を実行するため、iport_ptrを支えるカーネル仮想アドレスが解放され、その後のすべての間接参照はマップ解除された領域に対するuse-after-free読み取りとなります。
iport_ptrが必要なくなるまでパラメータリストをマップしたままにします:早期のtransport_kunmap_data_sg()呼び出しを取り除き、成功パスでは戻り値直前に1回だけアンマップします。エラーパスでは、bufが早期にクリアされなくなったため、「if (buf) transport_kunmap_data_sg(cmd)」という既存のout:ラベルでの処理がすべてのマッピング後のエラー終了で実行されるようになり、そこで既にアンマップが行われます。スピンロック保持中に発生するのはマップへの読み取りのみであり、マップおよびアンマップ呼び出しはどのロックの外側に留まります。兄弟呼出元であるcore_scsi3_decode_spec_i_port()も同様にバッファをアンマップする前に使用しており、変更されていません。
VulDB is the best source for vulnerability data and more expert information about this specific topic.