Description
In the Linux kernel, the following vulnerability has been resolved: net: fix segmentation of forwarding fraglist GRO This patch enhances GSO segment handling by properly checking the SKB_GSO_DODGY flag for frag_list GSO packets, addressing low throughput issues observed when a station accesses IPv4 servers via hotspots with an IPv6-only upstream interface. Specifically, it fixes a bug in GSO segmentation when forwarding GRO packets containing a frag_list. The function skb_segment_list cannot correctly process GRO skbs that have been converted by XLAT, since XLAT only translates the header of the head skb. Consequently, skbs in the frag_list may remain untranslated, resulting in protocol inconsistencies and reduced throughput. To address this, the patch explicitly sets the SKB_GSO_DODGY flag for GSO packets in XLAT's IPv4/IPv6 protocol translation helpers (bpf_skb_proto_4_to_6 and bpf_skb_proto_6_to_4). This marks GSO packets as potentially modified after protocol translation. As a result, GSO segmentation will avoid using skb_segment_list and instead falls back to skb_segment for packets with the SKB_GSO_DODGY flag. This ensures that only safe and fully translated frag_list packets are processed by skb_segment_list, resolving protocol inconsistencies and improving throughput when forwarding GRO packets converted by XLAT.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
9fd1ff5d2ac7181844735806b0a703c942365291 to < 9122d7280b2303e835cdfec156bd932ac1f586edaffected9fd1ff5d2ac7181844735806b0a703c942365291 to < 2cbef9ea5a0ac51863ede35c45f26931a85d3888affected9fd1ff5d2ac7181844735806b0a703c942365291 to < 3e62db1e3140449608975e29e0979cc5f3b1cc07affected9fd1ff5d2ac7181844735806b0a703c942365291 to < 3d48d59235c494d34e32052f768393111c0806efaffected9fd1ff5d2ac7181844735806b0a703c942365291 to < 426ca15c7f6cb6562a081341ca88893a50c59fa2affected
Linux Linux
Default version status: affected
5.6affected0 to < 5.6unaffected6.1.167 to ≤ 6.1.*unaffected6.6.130 to ≤ 6.6.*unaffected6.12.69 to ≤ 6.12.*unaffected6.18.9 to ≤ 6.18.*unaffected6.19 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/9122d7280b2303e835cdfec156bd932ac1f586ed ↗
- https://git.kernel.org/stable/c/2cbef9ea5a0ac51863ede35c45f26931a85d3888 ↗
- https://git.kernel.org/stable/c/3e62db1e3140449608975e29e0979cc5f3b1cc07 ↗
- https://git.kernel.org/stable/c/3d48d59235c494d34e32052f768393111c0806ef ↗
- https://git.kernel.org/stable/c/426ca15c7f6cb6562a081341ca88893a50c59fa2 ↗
- https://cert-portal.siemens.com/productcert/html/ssa-082556.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-019113.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-457936.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-784472.html ↗