CVE-2024-49978CWE-476

CVE-2024-49978

High · published October 21, 2024

CVSS v3.1
7.5
EPSS
1%
Percentile
50.9
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
7.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00659 · 50.9th percentile
Weakness
CWE-476 · NULL Pointer Dereference
Published
2024-10-21T22:15Z
Affected products (5)
ProductVersionsFixed in
linux/linux_kernel≥ 5.6, < 6.1.1136.1.113
linux/linux_kernel≥ 6.2, < 6.6.556.6.55
linux/linux_kernel≥ 6.7, < 6.10.146.10.14
linux/linux_kernel≥ 6.11, < 6.11.36.11.3
linux/linux_kernelall versions—
References (6)
EPSS history
Timeline
  • 21 OCT 18:02Z
    gso: fix udp gso fraglist segmentation after pull from frag_list
    cvelistv5