First published: Mon Oct 21 2024(Updated: )
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.
Credit: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Affected Software | Affected Version | How to fix |
---|---|---|
Linux Kernel | >=6.10<6.10.14 | |
Linux Kernel | >=6.11<6.11.3 | |
Linux Kernel | =6.12-rc1 | |
debian/linux | 5.10.223-1 5.10.226-1 6.1.123-1 6.1.128-1 6.12.12-1 6.12.15-1 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
The severity of CVE-2024-49979 has been determined to be critical due to its impact on network segmentation in the Linux kernel.
To fix CVE-2024-49979, update your Linux kernel to a version that is not affected, such as versions above 6.10.14 or 6.11.3.
CVE-2024-49979 affects Linux kernel versions from 6.10 to 6.10.14, 6.11 to 6.11.3, and version 6.12-rc1.
CVE-2024-49979 is a vulnerability that affects TCP segmentation offload (TSO) handling, particularly related to corrupted geometry in fragment lists.
There are no officially recommended workarounds for CVE-2024-49979; upgrading to a patched kernel version is the best approach.