CVE-2026-68099 in Linux信息

摘要

由 VulDB • 2026-08-10

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

ksmbd: 在 check_add_overflow() 检查期间恢复 DACL 大小,以避免生成格式错误的 ACL。

根据 include/linux/overflow.h 中的约定,check_add_overflow() 即使在发生溢出时也会无条件地将截断后的总和写入 *d。set_posix_acl_entries_dacl() 和 set_ntacl_dacl() 中的四个 check_add_overflow() 守卫在检测到溢出时会跳出构建 ACE(访问控制条目)的循环,但随后在下端调用 set_ntacl_dacl() 末尾处会消费该截断后的 *size:

pndacl->size = cpu_to_le16(le16_to_cpu(pndacl->size) + size);

这会导致生成的网络传输 NT ACL 中,pndacl->size 报告的字节数少于前面 fill_ace_for_sid()/memcpy() 调用实际写入的字节数,从而产生格式错误的 ACL。当客户端或 ksmbd 自身重新解析该 ACL 时,可能触发越界读取(out-of-bounds reads)。

通过在每个溢出分支上将 *size 恢复为其加法前的值(通过 `*size -= ace_sz` / `size -= nt_ace_size`),使得在跳出循环后,*size 再次保存已成功写入的 ACEs 的累积大小。这样提交的 ACL 将是截断但自洽的,而非格式错误的。

ksmbd DACL 构建器是唯一发现的 check_add_overflow() 使用场景,其中溢出路径会跳出循环并在之后消费目标值。其他附近的 break-style 案例要么在溢出时返回 -EINVAL(transport_ipc.c),要么在不消费溢出后的目标值的情况下直接跳出(buildid.c)。

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

来源

Interested in the pricing of exploits?

See the underground prices here!