CVE-2024-49979CWE-476

CVE-2024-49979

High · published October 21, 2024

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

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

net: gso: fix tcp fraglist segmentation after pull from frag_list

Detect tcp 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 TCP, this

causes a NULL ptr deref in __tcpv4_gso_segment_list_csum at

tcp_hdr(seg->next).

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.

Approach and description based on a patch by Willem de Bruijn.

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.00593 · 47.6th percentile
Weakness
CWE-476 · NULL Pointer Dereference
Published
2024-10-21T22:15Z
Affected products (3)
ProductVersionsFixed in
linux/linux_kernel≥ 6.10, < 6.10.146.10.14
linux/linux_kernel≥ 6.11, < 6.11.36.11.3
linux/linux_kernelall versions—
References (5)
EPSS history
Timeline
  • 21 OCT 18:02Z
    net: gso: fix tcp fraglist segmentation after pull from frag_list
    cvelistv5