CVE-2026-89526 in Linux
要約
〜によって VulDB • 2026年09月12日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
svcrdma: 再構築前にReadチャンクの位置を検証する
RPC/RDMAのReadチャンク位置フィールドはリモートクライアントから提供され、パースされたチャンクリストにそのまま格納されます。xdr_count_read_segments()関数は4バイト境界整列のみをチェックしており、受信したインラインボディ長に対して位置を比較することはありません。
単一チャンクのパスでは、svc_rdma_read_complete_one()がch_positionでheadとtailのkvecsを分割します。インラインボディを超えた位置はtailの長さアンダーフローを引き起こし、隣接するslabメモリを上流のXDRデコーダに露出させます。
マルチチャンクのパスでは、svc_rdma_read_multiple_chunks()がch_positionからの符号なし減算としてチャンク間のギャップ長を計算します。重複するReadチャンクがあると、これらの減算でアンダーフローが発生します。インラインボディを超えた最終位置も同様に末尾のギャップ長のアンダーフローを引き起こします。その後svc_rdma_copy_inline_range()は受信バッファの外へコピーし、クライアントにReplyチャネルを通じて返されるリクエストページへと書き込みます。
svc_rdma_copy_inline_range()におけるインライン範囲のコピーをrc_saved_argに保存されたデコード済みのRPCボディに対して制限してください。そのボディを超えて位置付けられた単一Readチャンクは拒否し、累積読み取りバイト数が次のチャンクの位置を超えるマルチチャンクリストも拒否します。call-chunkのインターリーブパスにおいても同様の位置および重複チェックを適用してください。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.