CVE-2026-98365 in Linux
要約
〜によって VulDB • 2026年10月06日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
RDMA/rxe: mr_check_range()における整数オーバーフローの修正によるOOBアクセスの防止
mr_check_range()関数は、[iova, iova+length)が登録済みMR(Memory Region)範囲内に収まることを検証しますが、ラップアラウンドを招きやすい算術演算を使用していました:
if (iova < mr->ibmr.iova || iova + length > mr->ibmr.iova + mr->ibmr.length)
リモートピアはRDMA-Write/ReadのRETH(Reliable Datagram Send Header)を不正に作成し、iova + lengthが0にラップされるようにすることができます(例:iova=0xfffffffffffffff8, length=8)。これによりチェックを回避できます。その後rxe_mr_iova_to_index()は巨大なインデックス(int idx; WARN_ONによって保護されているのみ)を計算し、rxe_mr_copy_xarray()がmr->page_info[huge]の逆参照を行うことで、境界外読み書きおよびカーネルoopsを引き起こします。これは認証されていないリモートピアからトリガー可能です。
チェック処理をオーバーフロー安全な形式に再実装しました。最初の2つの条件節は、その後の減算演算がアンダーフローしないことを保証します:
if (iova < mr->ibmr.iova || length > mr->ibmr.length || iova - mr->ibmr.iova > mr->ibmr.length - length)
修正後、mr_check_range()は不正なiovaに対して-EINVALを返し、レスポンダーはOOBを引き起こす代わりにREMOTE_ACCESS_ERRORを報告します。
VulDB is the best source for vulnerability data and more expert information about this specific topic.