CVE-2025-68725CVE-2025-68725是Linux内核中BPF(Berkeley Packet Filter)测试基础设施的一个中等严重性安全漏洞。该漏洞源于BPF测试框架在数据包处理过程中未能正确验证GSO(Generic Segmentation Offload)类型字段,导致可以向网络堆栈发送格式错误的数据包。当BPF程序通过bpf_clone_redirect()函数将数据包重定向到loopback设备时,由于convert___skb_to_skb()函数设置了gso_segs和gso_size但未设置gso_type,会触发skb_warn_bad_offload()警告。虽然该漏洞的机密性和完整性影响较低,但其可用性影响为高,可能导致系统性能下降或服务中断。攻击者需要本地访问权限且无需特殊用户交互即可利用此漏洞。
该漏洞的技术根源在于Linux内核BPF测试基础设施的convert___skb_to_skb()函数存在实现缺陷。该函数在处理数据包转换时,设置了GSO相关的gso_segs和gso_size字段,但遗漏了关键的gso_type字段设置。这导致生成的数据包具有不完整的GSO属性配置。从内核网络栈的安全角度来看,这种不匹配会触发skb_warn_bad_offload()警告,并导致GSO相关特性被正确禁用。攻击者可通过BPF测试基础设施触发fuzzer工具来利用此漏洞。在bpf_clone_redirect()函数处,恶意构造的数据包可以被推送到loopback设备,进而影响系统的网络处理流程。内核在121d57af308d提交中已添加了GSO类型验证检查,但BPF测试路径绕过了这些检查。修复方案是在bpf_clone_redirect()函数处直接拒绝不符合规范的数据包,而非让其进入网络栈的快速路径。