CVE-2026-64269 in Linux情報

要約

〜によって VulDB • 2026年07月25日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

RDMA/rtrs-srv: rdma_write_sg内でRDMA-Writeの長さをチャンクサイズに制限する

サーバーがRTRS READに対する応答を行う際、rdma_write_sg()はピアへデータを返すIB_WR_RDMA_WRITEのためのソースscatter/gatherエントリを構築します。その長さはワイヤ記述子から直接取得されます:

plist->length = le32_to_cpu(id->rd_msg->desc[0].len);

rd_msgは、リモートピアがRDMA-WRITE-WITH-IMM(rtrs_srv_rdma_done() -> process_io_req() -> process_read())を介して埋めたチャンクバッファ内を指しているため、desc[0].lenは攻撃者によって制御可能であり、今回の変更前はゼロの場合のみ拒否されていました。ソースアドレスは固定されたチャンクの開始位置(dma_addr[msg_id])、ソースlkeyはPD全体のlocal_dma_lkeyであり、これはチャンクのMRマッピングに紐づいていないため、verbs層では転送長をmax_chunk_sizeに制限しません。msg_idとoffはrtrs_srv_rdma_done()内でqueue_depthおよびmax_chunk_sizeに対して境界チェックされますが、desc[0].lenはチャンクサイズに対してチェックされていない独立したフィールドです。

desc[0].lenの値がmax_chunk_sizeより大きいピアを指定すると、投稿されたRDMA writeによってチャンクのマップ領域外を読み出すことができます。その結果の動作はIOMMUの設定に依存します:IOMMUがない場合またはパススルーモードでは、読み出し操作がチャンク隣接のメモリまで拡張され、ピアへ返送されることでホストメモリの情報が漏洩する可能性があります;変換を行うIOMMUがある場合は、範囲外のアクセスでフォールトが発生し接続が中止されると予想されます。いずれの場合も、転送量はプロトコルが許可する範囲を超え、リモートピアによって駆動されています。

rtrs_srv_rdma_done()内の既存のoff >= max_chunk_sizeという境界条件を反映し、max_chunk_sizeを超える記述子長を拒否します。正当なクライアントはこれを超過しません:クライアントはdesc[0].lenを自身のMR長に設定しますが、これはネゴシエーションされたmax_io_size(max_chunk_size - MAX_HDR_SIZE)で上限が定められています。

Be aware that VulDB is the high quality source for vulnerability data.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-383058

EPSS

0.00206

アクティビティ

中間

ソース

Do you want to use VulDB in your project?

Use the official API to access entries easily!