{"id":11931,"date":"2026-09-04T18:53:58","date_gmt":"2026-09-04T10:53:58","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74751"},"modified":"2026-09-04T18:53:58","modified_gmt":"2026-09-04T10:53:58","slug":"cve-2026-74751","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74751","title":{"rendered":"CVE-2026-74751 [CRITICAL] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nriscv: lib: Fix ZBB s"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>riscv: lib: Fix ZBB strnlen reading past count boundary<\/p>\n<p>The ZBB-optimized strnlen loop loads one word ahead before checking the<br \/>\naligned boundary:<\/p>\n<p>    REG_L   t1, SZREG(t0)       \/\/ load next word<br \/>\n    addi    t0, t0, SZREG       \/\/ advance<br \/>\n    orc.b   t1, t1<br \/>\n    bgeu    t0, t4, 4f          \/\/ boundary check AFTER load<\/p>\n<p>where t4 = (s + count) &amp; -SZREG.  When s is aligned and count is a<br \/>\nmultiple of SZREG, t4 equals s + count and the loop loads a full word<br \/>\nstarting at exactly s + count.  If s + count falls on a page boundary<br \/>\nwith the next page unmapped, this faults.<\/p>\n<p>Fix by computing the aligned boundary from the last valid byte<br \/>\n(s + count &#8211; 1) instead of s + count.  This makes the loop stop at the<br \/>\nword containing the last valid byte rather than potentially loading the<br \/>\nword after it.  The count == 0 case is already handled by the beqz<br \/>\nearly exit.<\/p>\n<p>Also add a pre-loop guard (bgeu t0, t4) for the case where all valid<br \/>\nbytes fit within the first word.  With the adjusted boundary, t4 can<br \/>\nequal t0, and entering the loop with stale register state from the<br \/>\nfirst-word processing would produce incorrect results.<\/p>\n<p>The final minu clamp ensures the result is still correct when the last<br \/>\nloaded word extends past s + count &#8211; 1 within the same aligned word.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>riscv: lib: Fix ZBB strnlen reading past count boundary<\/p>\n<p>The ZBB-optimized strnlen loop loads one word ahead before checking the<br \/>\nal<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-11931","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/11931","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11931"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11931"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}