从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 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)。如果使用bpf_redirect_neigh()函数时传递非空参数,并且后续的XDP重定向使用相同的bpf_redirect_info结构,会导致XDP路径混淆并最终导致崩溃。 2. 修复措施: - 代码更改:修复了代码中bpf_redirect_info结构的共享问题,通过移动flag定义并重新定义三个flag(BPF_F_REDIRECT_INTERNAL)以确保它们不与XDP使用的flag重叠。 - 构建检查:添加了BUILD_BUG_ON()检查,以确保重定向flag的重叠不会再次引入。 3. 修复历史: - 上游提交:09d88791c7cd888d5195c84733caf9183dcfbd16 - 报告者:syzbot+cca39e6e84a367afe6f6@syzkaller.appspot.com - 签署者:Toke Høiland-Jørgensen - 签署者:Daniel Borkmann - 认可者:Daniel Borkmann - 关闭链接:https://syzkaller.appspot.com/bug?extid=cca39e6e84a367afe6f6 4. 代码更改: - 文件:include/uapi/linux/bpf.h - 更改内容:移除了共享的bpf_redirect_info结构,并重新定义了flag以确保不重叠。 5. 补丁状态: - 状态:已修复 - 补丁大小:2个文件,10个插入,11个删除 这些信息表明,该漏洞与bpf_redirect_info结构的共享和flag重叠有关,并通过代码更改和构建检查解决了这个问题。