CVE-2026-64268 in Linux
要約
〜によって VulDB • 2026年07月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
RDMA/siw: Read Responseの配置をRREAD長に制限する
drivers/infiniband/sw/siw/siw_qp_rx.cにおけるsiw_proc_rresp()関数は、各着信Read Response DDPセグメントをsge->laddr + wqe->processedの位置に配置し、その後wqe->processedを加算していきます。しかし、継続的なセグメントにおいて累積値がシンクバッファ長を超えていないかチェックしていません。siw_check_sge()関数は最初のフラグメント(if (!*mem) ブランチ)でのみシンクメモリを解決および検証し、siw_rresp_check_ntoh()関数は最終セグメント(!frx->more_ddp_segs ガード)においてのみ累積長がwqe->bytesを超えていないか比較します。
未処理のRREADに対してRead Responseセグメントで応答する接続済みsiwピアは、DDP Lastフラグをクリアしたまま、要求されたRREADよりも多い総ペイロード量を送信できます。これによりwqe->processedが検証済みのシンクバッファ外へ進み、次のsiw_rx_data()呼び出し時にsge->laddr + wqe->processedの位置で境界外書き込みが発生します。siwは通常のルーティング可能なTCP上でiWARPを実行するため、ピアは確立されたRDMA接続のリモートエンドであり、ローカル特権を必要としません。
各セグメントを配置前に制限し、Read Responseがシンクバッファの境界を超える場合にbase-or-bounds DDPエラーで接続を終了します。これはsiw_proc_send()およびsiw_proc_write()関数がタグ付きパスとタグなしパスに対してすでに実行している処理に準拠しています。
このファイルに対する2回目の受信経路における長さチェック修正です。別の修正では、ヘッダデコード時のフラグメントごとの残り長アンダーフローを引き起こすMPA FPDU長を拒否します。しかし、そのガードはこのケースをカバーしていません。なぜなら、ここでは各セグメントの長さが自己整合性を持っており、問題となるのは累積配置オフセットがバッファを超えてしまう点だからです。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.