从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 标题:bpf, arm64: Fix address emission with tag-based KASAN enabled - 问题:当BPF_TRAMP_F_CALL_ORIG被启用时,bpf_tramp_image结构体在栈上的地址在大小计算阶段传递,而在代码生成阶段传递堆上的地址。这可能导致堆缓冲区溢出,因为emit_a64_mov_i64()在大小计算阶段会生成更长的代码,而在代码生成阶段不会。 - 解决方法:通过假设最坏情况(4条指令)来计算bpf_tramp_image地址的大小,以解决这个问题。 2. 修复历史: - 上游提交:a552e2ef5fd1a6c78267cd4ec5a9b49aa11bb1c - 修复者:Peter Collingbourne - 提交时间:2024-10-18 15:16:43 -0700 - 提交者:Greg Kroah-Hartman - 提交时间:2024-11-01 02:02:35 +0100 3. 修复文件: - 文件路径:arch/arm64/net/bpf_jit_comp.c - 文件内容:展示了代码片段,其中包含对emit_a64_mov_i64()函数的修改,以解决堆缓冲区溢出问题。 4. 修复细节: - 代码修改:在if (flags & BPF_TRAMP_F_CALL_ORIG)块中,对emit_a64_mov_i64()函数的调用进行了修改,以解决堆缓冲区溢出问题。 5. 修复状态: - 状态:已修复 - 修复者:Peter Collingbourne - 修复者:Daniel Borkmann - 修复者:Xu Kuohai - 修复者:Sasha Levin 这些信息可以帮助我们了解漏洞的背景、修复过程和修复后的状态。