【活用ガイド】

JVNDB-2026-032002

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

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。tipcのbroadcast Gap ACKブロックにおけるバッファ境界外読み取りの問題です。broadcastのPROTOCOL/STATE_MSGは、そのデータ領域にGap ACKブロックのレコードを含むことがあります。tipc_get_gap_ack_blks()関数は、レコードのlenフィールドがugack_cntおよびbgack_cntの合計(sz == struct_size(p, gacks, ugack_cnt + bgack_cnt))と自己整合性があるかどうかのみを検証しており、そのレコードがメッセージのデータ領域(msg_data_sz())内に実際に収まっているかはチェックしていません。ユニキャストの呼び出し元であるtipc_link_proto_rcv()は「if (glen > dlen) break;」で境界を検査していますが、ブロードキャストの呼び出し元であるtipc_bcast_sync_rcv()は戻り値のサイズを破棄するため、tipc_link_advance_transmq()関数は攻撃者に制御されたカウントで受信したskbからレコードをコピーしてしまいます。this_ga = kmemdup(ga, struct_size(ga, gacks, ga->bgack_cnt), GFP_ATOMIC); TIPC_GAP_ACK_BLOCKをネゴシエートしたTIPCの隣接ノードは、data領域が短い通常のbroadcast STATE_MSG(msg_bc_ack_invalid()はクリアされる)を使用し、len=0x400、bgack_cnt=0xff、ugack_cnt=0のGap ACKレコードを送信して本脆弱性を引き起こします。lenはstruct_size(p, gacks, 255)となり一貫性チェックを通過し、gaはNULLではないため、kmemdup()はより小さいskbからstruct_size(ga, gacks, 255) = 1024バイトを読み取ります。 BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x48/0x60 Read of size 1024 at addr ffff0000c7030d38 by task poc864/69 Call trace: kmemdup_noprof+0x48/0x60 tipc_link_advance_transmq+0x86c/0xb80 tipc_link_bc_ack_rcv+0x19c/0x1e0 tipc_bcast_sync_rcv+0x1c4/0x2c4 tipc_rcv+0x85c/0x1340 tipc_l2_rcv_msg+0xac/0x104 バグのあるアドレスはサイズ704バイトのskbuff_small_headキャッシュ内のオブジェクトffff0000c7030d00に属し、割り当てられた704バイト領域[ffff0000c7030d00, ffff0000c7030fc0)の56バイト内に位置しています。コピーアウトされたバイト列はその後gap/ack値として消費されますが、kmemdup()での読み取り自体が既にバッファ境界外であり、その使用方法に関わらず問題となります。ユニキャストのSTATE経路はこのようなメッセージを破棄し、「if (glen > dlen) break;」によりSTATE_MSGの処理をスキップしてskbを解放します。ブロードキャスト経路でも同様に破棄するようにしました。現在、tipc_bcast_sync_rcv()はmsg_data_sz()に対してレコードの境界を検査し、収まらない場合はtipc_node_bc_sync_rcv()を介してtipc_rcv()に報告し、skbは処理されず破棄されます。この経路ではgaはクリアされません。ga == NULLは既に「Selective ACK非対応のレガシーピア」であることを意味し、別の正当な状態を示しています。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 5.11 以上 5.15.212 未満
  • Linux Kernel 5.16 以上 6.1.178 未満
  • Linux Kernel 5.8 以上 5.10.261 未満
  • Linux Kernel 6.13 以上 6.18.39 未満
  • Linux Kernel 6.19 以上 7.1.4 未満
  • Linux Kernel 6.2 以上 6.6.145 未満
  • Linux Kernel 6.7 以上 6.12.96 未満
  • Linux Kernel 7.2

想定される影響

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

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

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

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

  1. CVE-2026-64450
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-64450
  2. 関連文書 : tipc: fix out-of-bounds read in broadcast Gap ACK blocks - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/f333b6851bdf326fd2134133272dbbed0c94d921)
  3. 関連文書 : tipc: fix out-of-bounds read in broadcast Gap ACK blocks - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/055663d21dc4336f67933ab26bef3c5934be6324)
  4. 関連文書 : tipc: fix out-of-bounds read in broadcast Gap ACK blocks - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/74b45af86a767594ba52330cd440ea84e24d700d)
  5. 関連文書 : tipc: fix out-of-bounds read in broadcast Gap ACK blocks - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/2b66974a1b6134a4bbc3bfed181f7418f688eb54)
  6. 関連文書 : tipc: fix out-of-bounds read in broadcast Gap ACK blocks - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/2de42e268174766cb2e2b90721afdfdff70e0d8d)
  7. 関連文書 : tipc: fix out-of-bounds read in broadcast Gap ACK blocks - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/016f5995c37a5a2c45198308f830f244517d70b7)
  8. 関連文書 : tipc: fix out-of-bounds read in broadcast Gap ACK blocks - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/9a51115fcdc78687c8852bf93a1db3951dbb223b)
  9. 関連文書 : tipc: fix out-of-bounds read in broadcast Gap ACK blocks - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a21ed5064217cc33726da6c7ef1a520eba43aea1)
更新履歴

  • [2026年09月04日]
      掲載