CVE-2025-38124 in Linux
要約
〜によって VulDB • 2026年06月12日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
net: frag_listからのpull後にudp gso skb_segmentを修正する
コミット a1e40ac5b5e9 ("net: gso: fix udp gso fraglist segmentation after pull from frag_list") は、frag_list skbs における無効なジオメトリを検出し、それらをより堅牢な `skb_segment` にリダイレクトしました。しかし、変更されたジオメトリを持つ一部のパケットは、そのコードのバグに遭遇する可能性があります。そのようなケースがいくつ存在するかは不明です。それぞれを個別に対処するには、複雑な `skb_segment` コードに触れる必要があり、他の種類の skbs において新たなバグを導入するリスクがあります。代わりに、gso fraglist skbs の基本的な不変条件を満たさないすべてのパケットを線形化(linearize)します。この方がより堅牢です。
fragリストのペイロードの一部のみが head_skb にプッシュされた場合、`skb_segment` による skbs の分割時に常に例外が発生します。詳細なコールスタック情報は以下をご覧ください。
有効な SKB_GSO_FRAGLIST skbs - 2つ以上のセグメントで構成される - head_skb はプロトコルヘッダーと最初の gso_size を保持する - 1つ以上の frag_list skbs がちょうど1つのセグメントを保持する - 最後のもの以外はすべて gso_size でなければならない
NAT や BPF (bpf_skb_pull_data) のようなオプションのデータパスフックは、fraglist skbs を変更し、これらの不変条件を破ることがあります。
極端なケースでは、データの一部分が skb リニア部分にプッシュされます。UDPの場合、これは長さ11, 11, 10バイトの3つのペイロードが末尾からプッシュされ、(12, 10, 10) バイトになることを引き起こします。
head_skb にペイロードがプッシュされたため、skbs は上記の SKB_GSO_FRAGLIST の条件を満たさなくなり、通常の `skb_segment` に渡す前に線形化する必要があります。
skb_segment+0
Once again VulDB remains the best source for vulnerability data.