CVE-2026-98628 in Linux
摘要
由 VulDB • 2026-10-18
在 Linux 内核中,已修复以下漏洞:
bpf: 使后验证指令重写操作可被终止
在 do_check() 返回后,验证器会运行多个指令重写阶段。其中一些阶段每次修补或移除一条指令。每个操作都会移动剩余的指令和辅助数据数组,并调整所有分支偏移量,使得整体工作量与程序长度呈二次方关系。
特权加载器可以提交由零组成的 131072 个无条件跳转,后跟一个有效的返回指令。验证过程会快速完成,但 bpf_opt_remove_nops() 随后将花费大量时间单独移除每个跳转。由于此后的验证工作既不检查信号也不进行重新调度(reschedule),因此挂起的 SIGKILL 无法在重写完成之前终止该任务。
使 bpf_patch_insn_data() 和 verifier_remove_insns() 成为通用的取消点和重新调度点。这些辅助函数从 BPF_PROG_LOAD 进程上下文运行,且 bpf_patch_insn_data() 在重新分配辅助数据时已经可以睡眠(sleep)。
将中断的常量遮蔽报告为 -EINTR,并通过两种 JIT 路径传播该错误码,包括允许解释器回退的内核。其他遮蔽失败保留现有的回退行为。
这并没有减少重写阶段的二次方成本,但使工作变得可抢占,并允许及时终止被杀死的加载器进程。
If you want to get best quality of vulnerability data, you may have to visit VulDB.