CVE-2024-49978

gso: fix udp gso fraglist segmentation after pull from frag_list

State
Published
Severity
7.5 High
Published
Oct 21, 2024
Updated
Aug 5, 2026
Reserved
Oct 21, 2024

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

gso: fix udp gso fraglist segmentation after pull from frag_list

Detect gso fraglist skbs with corrupted geometry (see below) and pass these to skb_segment instead of skb_segment_list, as the first can segment them correctly.

Valid SKB_GSO_FRAGLIST skbs - consist of two or more segments - the head_skb holds the protocol headers plus first gso_size - one or more frag_list skbs hold exactly one segment - all but the last must be gso_size

Optional datapath hooks such as NAT and BPF (bpf_skb_pull_data) can modify these skbs, breaking these invariants.

In extreme cases they pull all data into skb linear. For UDP, this causes a NULL ptr deref in __udpv4_gso_segment_list_csum at udp_hdr(seg->next)->dest.

Detect invalid geometry due to pull, by checking head_skb size. Don't just drop, as this may blackhole a destination. Convert to be able to pass to regular skb_segment.

Scores

CVSSScoreVectorSource
3.17.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 9fd1ff5d2ac7181844735806b0a703c942365291 to before 080e6c9a3908de193a48f646c5ce1bfb15676ffcAffected
  • 9fd1ff5d2ac7181844735806b0a703c942365291 to before af3122f5fdc0d00581d6e598a668df6bf54c9daaAffected
  • 9fd1ff5d2ac7181844735806b0a703c942365291 to before 33e28acf42ee863f332a958bfc2f1a284a3659dfAffected
  • 9fd1ff5d2ac7181844735806b0a703c942365291 to before 3cd00d2e3655fad3bda96dc1ebf17b6495f86feaAffected
  • 9fd1ff5d2ac7181844735806b0a703c942365291 to before a1e40ac5b5e9077fe1f7ae0eb88034db0f9ae1abAffected
LinuxLinux
  • 5.6Affected
  • before 5.6Not affected
  • 6.1.113 through 6.1.*Not affected
  • 6.6.55 through 6.6.*Not affected
  • 6.10.14 through 6.10.*Not affected
  • 6.11.3 through 6.11.*Not affected
  • 6.12 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.