从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题:在处理GSO (Generic Segmentation Offload) 包时,qdisc_pkt_len_init函数没有对SKB_GSO_DODGY标志进行足够的检查。 - 影响:如果用户提供了一个恶意的GSO包,总长度为80字节,其中包含20字节的IPv4头部、60字节的TCP头部和一个小的gso_size(如8)。 - 后果:virtio_net_hdr_to_skb函数可能会将这个包误认为是一个正常的GSO包,因为它只检查了40字节的payload,而这个payload的长度大于gso_size。 2. 修复措施: - 修复代码:在qdisc_pkt_len_init函数中添加了更多的安全检查,确保在处理GSO包时不会发生下溢。 - 修复细节:在if条件语句中添加了对payload的检查,如果payload小于等于0,则返回,避免下溢。 3. 修复历史: - 上游提交:ab9a9a9e9647392a19e7a885b08000e89c86b535 - 修复提交:473426a1d53a68dd1e718e6cd00d57936993fa6c 4. 修复范围: - 文件:net/core/dev.c - 行数:10行代码被修改 5. 修复者: - 作者:Eric Dumazet - 提交者:Greg Kroah-Hartman - 上游提交者:Willem de Bruijn - 审查者:David Ahern, Paolo Abeni, Sasha Levin 这些信息表明,这个漏洞是由于在处理GSO包时的安全检查不足导致的,修复措施是通过在qdisc_pkt_len_init函数中添加更多的安全检查来解决这个问题。