从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 标题:net: gso: fix tcp fraglist segmentation after pull from frag_list - 描述:修复TCP gso fraglist skbs(skbuffs)在从frag_list拉取后出现的分段错误。skbuffs是Linux内核中用于存储网络数据包的结构体。 2. 修复方法: - 代码修改:修复了TCP gso fraglist skbs的分段错误,通过在skb_segment而不是skb_segment_list中处理这些skbuffs,因为后者可以正确地分段它们。 - 数据结构:skbuffs需要满足以下条件: - 由两个或多个段组成 - 头部skbuff持有协议头部和第一个gso_size - 一个或多个frag_list skbuffs持有恰好一个段 - 除了最后一个外,所有段必须是gso_size - 数据路径钩子:如NAT和BPF(bpf_skb_pull_data)可以修改这些skbuffs,破坏这些不变量。 3. 修复过程: - 链接:提供了两个链接,一个是关于TCP gso fraglist的讨论,另一个是关于TCP gso fraglist的修复。 - 补丁:提供了两个补丁,一个用于IPv4,另一个用于IPv6。 4. 作者和审查: - 作者:Felix Fietkau - 审查:Willem de Bruijn、Jakub Kicinski和Greg Kroah-Hartman 5. 代码更改: - 文件:net/ipv4/tcp_offload.c和net/ipv6/tcpv6_offload.c - 更改内容:修复了TCP gso fraglist skbs的分段错误,主要修改了skb_segment和skb_segment_list的处理逻辑。 6. 补丁状态: - 状态:已修复,代码已提交到内核。 通过这些信息,我们可以了解到这个漏洞的修复过程和修复方法,以及修复后的代码更改。