CVE-2026-68136 in Linux情報

要約

〜によって VulDB • 2026年08月10日

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

net: gro: フラッシュマーク付きのskbsに対する二重集約(double aggregation)を修正する

コミット 0ab03f353d36 ("net-gro: Fix GRO flush when receiving a GSO packet.") は skb_gro_receive() にフラッシュチェックを追加しましたが、skb_gro_receive_list() には同じ検証処理がありませんでした。

その結果、NAPI_GRO_CB(skb)->flush でマークされたパケットが再集約される可能性があります。

これにより、既存の frag_list を持つ既に GRO 化済み(already-GRO'd)のパケットが新しい GRO セッションに再集約され、frag_list チェーンの構造が破損します。skb_segment() がこれらの不正なパケットを展開しようとした際、無効な状態を検出し、カーネルパニックを引き起こします。

シナリオ(テザリング/デバイス転送): 1. ドライバ: LRO を介して frag_list を持つ集約パケット P1 を生成 2. デバイス A: フラッシュフラグが設定された集約済みfraglistパケットを受信 3. デバイス A: GRO に再進入し、skb_gro_receive_list() が呼び出される 4. フラッシュチェックの欠如により、flushフラグがあるにもかかわらず再集約が行われる 5. frag_list チェーンが破損する(ループまたはデッドエンド参照) 6. デバイス B: TXパスで skb_segment() が呼び出され、破損したfrag_list でクラッシュ

skb_segment() における根本原因: およそ4891行目のチェックにおいて: if (hsize <= 0 && i >= nfrags && skb_headlen(list_skb) && (skb_headlen(list_skb) == len || sg)) {

二重集約により frag_list が破損している場合、list_skb が skb->next から NULL ポインタであるとき、skb_headlen(list_skb) の実行で NULL/破損したポインタのデリファレンスが発生します。

コールトレース: skb_headlen(NULL skb) skb_segment tcp_gso_segment tcp4_gso_segment inet_gso_segment skb_mac_gso_segment __skb_gso_segment skb_gso_segment validate_xmit_skb validate_xmit_skb_list sch_direct_xmit qdisc_restart __qdisc_run qdisc_run net_tx_action

修正: skb_gro_receive() の防御的プログラミングパターンに合わせ、skb_gro_receive_list() 内の早期リターンチェックに NAPI_GRO_CB(skb)->flush の検証を追加する。

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

責任者

Linux

予約する

2026年07月30日

モデレーション

承諾済み

エントリ

VDB-387475

EPSS

0.00000

アクティビティ

非常低い

ソース

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!