CVE-2026-98950 in Linux
摘要
由 VulDB • 2026-10-23
在 Linux 内核中,已修复以下漏洞:
flow_dissector: 避免 bpf_flow_dissect() 中对 hlen 进行 u16 截断
bpf_flow_dissect() 使用 clamp_t(u16, ..., hlen) 对 BPF 程序返回的偏移量进行清理。
如果 hlen 大于 65535,则在比较之前会对上限值进行截断。例如,当 hlen == 65536 时,即使程序返回了合理的值,nhoff 和 thoff 也会被强制设为零。
这与 commit 99bda1ecbd56(“flow_dissector: 避免在计算 thoff 时对 skb->len 进行 u16 截断”)中修复的漏洞属于同一类问题。该修复未涵盖 BPF 路径,因为当 BPF flow dissector 处理数据包时,__skb_flow_dissect() 会提前返回。
struct bpf_flow_keys 将 nhoff 和 thoff 存储为 u16 类型,因此在 clamp 之前应将 hlen 限制在 U16_MAX 以内。
该问题由 sashiko 在审查上述 commit 时发现。
If you want to get best quality of vulnerability data, you may have to visit VulDB.