从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 标题:bpf: Make sure internal and UAPI bpf_redirect flags don't overlap - 描述:bpf_redirect_info 结构在 skb 和 XDP 路径之间共享,两个路径使用相同的 ri->flags 字段(特别是 BPF_F_BROADCAST == BPF_F_NEXTHOP)。如果 skb 中使用 bpf_redirect_neigh() 函数,并且 XDP 路径使用相同的 bpf_redirect_info 结构,会导致 XDP 路径混淆并最终导致崩溃。 2. 修复措施: - 代码更改:修复了 bpf_redirect_info 结构的共享问题,通过重新定义三个在 BPF_F_REDIRECT_INTERNAL 中的标志,确保它们不与 XDP 使用的标志重叠。 - 检查:添加了 BUILD_BUG_ON() 检查,以确保重叠不会再次引入。 3. 修复细节: - 文件更改:包括/uapi/linux/bpf.h 和 net/core/filter.c 文件。 - 代码更改:在 bpf.h 文件中,修改了 BPF_F_BROADCAST 和 BPF_F_NEXTHOP 标志的定义,以确保它们不重叠。在 filter.c 文件中,修改了内部和非暴露的重定向标志的定义。 4. 修复历史: - 上游提交:09d88791c7cd888d5195c84733caf9183dcfbd16 - 报告和确认:由 syzbot、Toke Høiland-Jørgensen、Daniel Borkmann 和 Sasha Levin 等人报告和确认。 5. 相关补丁和链接: - 补丁:e624d4ed4aa8 - 报告链接:https://lore.kernel.org/bpf/20240920125625.59465-1-toke@redhat.com - 确认链接:https://lore.kernel.org/bpf/20240920125625.59465-1-toke@redhat.com 这些信息表明,该漏洞与 bpf_redirect_info 结构的共享和重定向标志的重叠有关,并通过修改标志定义和添加检查来修复。