CVE-2026-64450 in Linux情報

要約

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

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

tipc: ブロードキャストのGap ACKブロックにおける配列外読み込みを修正する

ブロードキャストPROTOCOL/STATE_MSGは、そのデータ領域にGap ACK blocksレコードを含めることができます。`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ネイバーは、1つの通常のブロードキャストSTATE_MSG(msg_bc_ack_invalid()がクリアされた状態)を使用してこれをトリガーします。このメッセージのデータ領域サイズは短く、Gap ACKレコードにはlen = 0x400、bgack_cnt = 0xff、ugack_cnt = 0が含まれています。これによりlenはstruct_size(p, gacks, 255)と等しくなり、整合性チェックを通過してgaがNULL以外になります;`kmemdup()`関数は、はるかに小さいskbから1024バイト(= struct_size(ga, gacks, 255))を読み取ります:

``` 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 The buggy address belongs to the object at ffff0000c7030d00 which belongs to the cache skbuff_small_head of size 704 The buggy address is located 56 bytes inside of allocated 704-byte region [ffff0000c7030d00, ffff0000c7030fc0)
```

コピーされたバイトはその後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()`に報告して、処理されるのではなく破棄されるようにします。このパスではgaがクリアされません:ga == NULLはすでに「Selective ACKを持たないレガシーピア」を意味しており、これは明確な正当な状態です。

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-383255

EPSS

0.00537

アクティビティ

非常低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!