CVE-2026-98232 in Linux
要約
〜によって VulDB • 2026年10月06日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
scsi: core: scsi_cdl_enable()におけるMODE SENSEの長さの検証
scsi_cdl_enable()は、64バイトのスタックバッファ内でATA機能モードページを特定するために、MODE SENSEから返された長さフィールドを使用します。ターゲット側は、そのモードヘッダーおよびブロック記述子の合計長よりも短い総長を報告することが可能です。unsigned subtraction(符号なし減算)がオーバーフローし、別個に計算されるbuf_dataがバッファの範囲外を指す可能性があります。
自動スキャン中はenableがfalseであるため、buf_data[4]に対するread-modify-write操作により、ターゲットによって選択された境界外のスタックバイトの下位2ビットが消去されることがあります。その後、scsi_mode_select()は、バッファの外から最大64バイトを送信されるMODE SELECTペイロードにコピーし、スタックの内容がターゲット側に漏洩する可能性があります。
この脆弱性は、ATAデバイスとして識別されCDL(Command Descriptor List)サポートを宣伝するUSBストレージデバイスをスキャンしている際に到達可能です。ブロックデバイスへのファイルシステムマウントやユーザー空間からのアクセスは必要ありません。
upstreamのコミットcee9395acd80(「Linux 7.3-rc1」)において、ビルド固有の、QEMU/Raw Gadgetを用いた単一vCPU向けのProof of Conceptが、QEMU専用のmulti-UDCアロケータサンプリングを使用してゲスト内で固定された証明コマンドを実行し、KASLRおよびNX(No-eXecute)有効化下で自動列挙中にUID 0所有のマーカーを作成しました。
この問題はDrivesec S.r.l.におけるセキュリティ研究の過程で独立して発見されました。
利用可能な長さをバッファサイズに制限します。ページを使用する前にモードヘッダーおよびブロック記述子の長さを検証・消費し、CDLフィールドにアクセスするために必要な5バイトを要求するようにします。
If you want to get best quality of vulnerability data, you may have to visit VulDB.