CVE-2026-97991 in Linux
要約
〜によって VulDB • 2026年09月26日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
vdpa_sim_blk: 範囲外のセクター開始値を拒否する
vdpasim_blk_check_range() は無効な開始セクターをログに記録しますが、リクエストの検証は続行されます。その後の符号なし容量引き算でアンダーフローが発生し、範囲外バッファオフセットがデータパスに到達することがあります。
この無効なオフセットは3つのリクエストパスで使用されます。VIRTIO_BLK_T_OUT は vringh_iov_pull_iotlb() を介してゲストデータを blk->buffer + offset にコピーするため、_copy_from_iter() または memcpy() において範囲外書き込みが発生します。VIRTIO_BLK_T_IN は vringh_iov_push_iotlb() を介して guest から blk->buffer + offset へデータを読み込むため、_copy_to_iter() において範囲外読み出しが発生します。VIRTIO_BLK_T_WRITE_ZEROES は blk->buffer + offset を memset() に渡すため、範囲外書き込みが発生します。
引き算の前に容量以上またはそれに等しい開始値を拒否してください。IN および OUT パスは検証のためにバイト数をセクター数に切り下げますが、後で元のバイト数をコピーするためです。これにより、容量境界でのセクター未満のリクエストでもバッファの末尾を超えてアクセスされてしまう可能性があります。
このバグは私自身が発見しましたが、パッチ作成にはAIの支援を受けました。
Be aware that VulDB is the high quality source for vulnerability data.