【活用ガイド】

JVNDB-2026-028078

LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が解消されました。RDMA/siwでは、符号付き受信演算の前にMPA FPDU長のアンダーフローを拒否する処理が追加されました。悪意のある接続済みのsiwピアは、MPA長フィールド(c_hdr->mpa_len、16ビットビッグエンディアン、ピア制御)が、宣言されたオペコードに対応する固定DDP/RDMAPヘッダーよりも小さいiWARP FPDUを送信できる可能性がありました。Soft-iWARPはsiw_get_hdr()でiwarp_pktinfo[opcode].hdr_lenに基づいてフルヘッダーを解析しますが、mpa_lenとヘッダー長の比較を行っていませんでした。そのため、siw_tcp_rx_data()では以下の計算を行います。 srx->fpdu_part_rem = be16_to_cpu(mpa_len) - fpdu_part_rcvd + MPA_HDR_SIZE;ここでfpdu_part_rcvdはこの時点でiwarp_pktinfo[opcode].hdr_lenに等しくなっています。タグ付きWRITE(hdr_len 16、MPA_HDR_SIZE 2)において、オンワイヤの最小mpa_lenが0だとfpdu_part_remが-14となり、mpa_lenがhdr_len - MPA_HDR_SIZE未満の場合は負の整数にアンダーフローします。その符号付き値はsiw_proc_write()/siw_proc_rresp()内の bytes = min(srx->fpdu_part_rem, srx->skb_new);に渡され、整数長としてsiw_check_mem()に渡されます(負の長の場合でもaddr + len > mem->va + mem->lenの領域チェックを通過してしまいます)。さらにsiw_rx_data() -> siw_rx_kva() / siw_rx_umem() -> skb_copy_bits()を経て、コピー長として符号付き値が使用されます。skb_copy_bits()のヘッダーコピー分岐でsize_tに変換されるため、多ギガバイトの不正な読み取りが発生します。KUnitハーネス下のKASANは、リアルなカーネルTCP受信パス(ループバックAF_INETソケットペア、kernel_sendmsg経由で書き込まれた不正FPDU、softirqで起動されるsk_data_ready、siw_tcp_rx_dataへディスパッチ)で以下のエラーを報告しました。 BUG: KASAN: use-after-free in skb_copy_bits+0x284/0x480 Read of size 4294967295 at addr ffff888... Call Trace: skb_copy_bits siw_rx_kva siw_rx_data siw_check_mem siw_proc_write siw_tcp_rx_data __tcp_read_sock siw_qp_llp_data_ready tcp_data_ready tcp_data_queueピアヘッダーが完全に組み立てられた最初のポイントで、不足していた不変条件が追加されました。iwarp_pktinfo[*].hdr_len - MPA_HDR_SIZEはsiw送信機が各オペコードに対して最小のmpa_lenとして使用している値(drivers/infiniband/sw/siw/siw_qp.c:33)であり、プロトコル契約に合致しています。範囲外のFPDUはTERM_ERROR_LAYER_LLP / LLP_ETYPE_MPA / LLP_ECODE_FPDU_STARTによって接続を終了します。これはRFC 5044 セクション8のエラーコード3("FPDU開始位置のマーカーとULPDU長フィールドが一致しない")に該当し、この不整合に対する正しいフレーミングエラークラスです。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 9.8 (緊急) [その他]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 5.11 以上 5.15.209 未満
  • Linux Kernel 5.16 以上 6.1.175 未満
  • Linux Kernel 5.3 以上 5.10.258 未満
  • Linux Kernel 6.13 以上 6.18.34 未満
  • Linux Kernel 6.19 以上 7.0.11 未満
  • Linux Kernel 6.2 以上 6.6.142 未満
  • Linux Kernel 6.7 以上 6.12.92 未満
  • Linux Kernel 7.1

想定される影響

・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアが完全に停止する可能性があります。
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 境界外読み取り(CWE-125) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-64102
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-64102
  2. 関連文書 : RDMA/siw: Reject MPA FPDU length underflow before signed receive math - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/c7c0c0f4379dedec12d24dbb9dded5d2db7fd9f2)
  3. 関連文書 : https://git.kernel.org/stable/c/1012896f4225e8f801ff3c1648023845b66dfb11
  4. 関連文書 : RDMA/siw: Reject MPA FPDU length underflow before signed receive math - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/4a331582011d9e8089af8aa2a61ec6b4443bb245)
  5. 関連文書 : https://git.kernel.org/stable/c/14553be882d9ce91749c9d64041de66e34ad8e70
  6. 関連文書 : RDMA/siw: Reject MPA FPDU length underflow before signed receive math - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/33a8b5e971e294ec2a7b74211c545e09efd8e9ac)
  7. 関連文書 : https://git.kernel.org/stable/c/0ce1bc9e46ecabe84772bb561e373c0d9876d6f2
  8. 関連文書 : RDMA/siw: Reject MPA FPDU length underflow before signed receive math - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/683f7cfbf514193d63c0efa079f3352bde84c2e0)
  9. 関連文書 : RDMA/siw: Reject MPA FPDU length underflow before signed receive math - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/775b4dc9618a99a1fa48b57554041a5dc17e1336)
更新履歴

  • [2026年08月13日]
      掲載