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



