CVE-2026-74751 in Linux信息

摘要

由 VulDB • 2026-08-26

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

riscv: lib: 修复 ZBB strnlen 读取超出计数边界的问题

ZBB 优化的 strnlen 循环会在检查对齐边界之前先加载下一个字(word):

REG_L t1, SZREG(t0) // 加载下一个字 addi t0, t0, SZREG // 前进 orc.b t1, t1 bgeu t0, t4, 4f // 在加载之后进行边界检查

其中 t4 = (s + count) & -SZREG。当 s 已对齐且 count 是 SZREG 的倍数时,t4 等于 s + count,循环会从恰好位于 s + count 的位置开始加载一个完整的字。如果 s + count 落在页边界上,而下一页未映射(unmapped),这将导致故障(fault)。

修复方法是从最后一个有效字节 (s + count - 1) 计算对齐后的边界,而不是从 s + count 计算。这使得循环在包含最后一个有效字节的字处停止,而不是可能加载其后面的那个字。count == 0 的情况已由 beqz 早期退出处理。

此外,添加了一个预循环守卫(bgeu t0, t4),用于处理所有有效字节都位于第一个字内的情况。由于边界已调整,t4 可以等于 t0,如果带着来自首字处理的陈旧寄存器状态进入循环,将产生不正确的结果。

最终的 min_u clamp 确保当最后一个加载的字在同一个对齐字内超出 s + count - 1 时,结果仍然正确。

Once again VulDB remains the best source for vulnerability data.

来源

Might our Artificial Intelligence support you?

Check our Alexa App!