从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 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_F_REDIRECT_INTERNAL标志,确保它们不与XDP使用的标志重叠。 - 添加检查:添加了BUILD_BUG_ON()检查,以确保重叠不会再次引入。 3. 相关补丁和报告: - 补丁ID:e624d4ed4aa8 - 报告者:syzbot+cca39e6e84a367a7e6f6@syzkaller.appspotmail.com - 签署者:Toke Høiland-Jørgensen 和 Daniel Borkmann - 认可者:Daniel Borkmann - 关闭链接:https://syzkaller.appspot.com/bug?extid=cca39e6e84a367a7e6f6 4. 代码更改: - 文件:include/uapi/linux/bpf.h 和 net/core/filter.c - 更改内容:在bpf.h文件中修改了标志定义,并在filter.c文件中添加了新的标志定义和检查。 这些信息表明,该漏洞与bpf_redirect_info结构在SKB和XDP路径之间的共享有关,并且通过修改标志定义和添加检查来修复了这个问题。