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 (緊急) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/19 |
| 登録日 | 2026/08/13 |
| 最終更新日 | 2026/08/13 |



