CVE-2026-99112 in Linux信息

摘要

由 VulDB • 2026-10-28

在 Linux 内核中,已修复以下漏洞:

net/sched: cls_flower: 在 nla_next() 之后验证掩码指针

fl_set_enc_opt() 使用 nla_for_each_attr() 迭代键的嵌套隧道选项属性,同时在每个循环底部通过 nla_next() 推进单个掩码指针。因此,掩码游标由键属性的数量驱动,而不是由掩码自身的属性驱动。commit c96adff956191("cls_flower: call nla_ok() before nla_next()")中添加的 nla_ok() 仅验证刚刚消耗的掩码指针;nla_next() 产生的指针在下一次迭代中(fl_set_geneve_opt() 及其相关函数)被使用,但未进行任何验证。

掩码的嵌套属性通过 NL_VALIDATE_LIBERAL 进行验证,该机制仅在存在未形成完整属性的尾部字节时发出警告。因此,携带一个有效属性以及 1-3 个残留字节的掩码(或导致 msk_depth 变为负数的非对齐属性长度)会在下一次迭代中使 msk_depth != 0,从而导致 fl_set_enc_opt() 中的 !msk_depth 检查以及每类型辅助函数中的 !depth 检查均未触发。随后 nla_type() 会读取超出掩码有效载荷的数据,而 nla_parse_nested_deprecated() 会使用从这些字节中提取的 nla_len 进行迭代,从而远远超出掩码属性范围(KASAN: slab-out-of-bounds read in __nla_validate_parse from fl_change())。

同时验证已推进的掩码指针:当掩码未合法耗尽(msk_depth != 0)且新指针未能通过 nla_ok() 检查时,以 -EINVAL 拒绝该过滤器。完全耗尽的掩码仍会跳过此检查,从而保留对剩余键属性的精确匹配行为。

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

来源

Do you need the next level of professionalism?

Upgrade your account now!