{"id":12331,"date":"2026-09-04T18:54:17","date_gmt":"2026-09-04T10:54:17","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80672"},"modified":"2026-09-04T18:54:17","modified_gmt":"2026-09-04T10:54:17","slug":"cve-2026-80672","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80672","title":{"rendered":"CVE-2026-80672 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nntfs: fix u16 truncat"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ntfs: fix u16 truncation of restart-area length check<\/p>\n<p>ntfs_check_restart_area() validates that the $LogFile restart area and<br \/>\nits trailing log client record array fit within the system page size:<\/p>\n<p>        u16 ra_ofs, ra_len, ca_ofs;<br \/>\n        &#8230;<br \/>\n        ra_len = ca_ofs + le16_to_cpu(ra-&gt;log_clients) *<br \/>\n                        sizeof(struct log_client_record);<br \/>\n        if (ra_ofs + ra_len &gt; le32_to_cpu(rp-&gt;system_page_size) || &#8230;)<br \/>\n                return false;<\/p>\n<p>ra_len is u16, but the right-hand side is computed in size_t<br \/>\n(sizeof(struct log_client_record) == 160). Both ca_ofs and log_clients<br \/>\ncome straight from the on-disk restart area. With an on-disk<br \/>\nlog_clients of 410 the product 410 * 160 = 65600; adding ca_ofs and<br \/>\nstoring into the u16 ra_len truncates modulo 65536 (e.g. ca_ofs 64<br \/>\ngives ra_len 128), so the &#8220;fits in the page&#8221; check passes even though<br \/>\nthe client array described by log_clients extends far beyond the page.<\/p>\n<p>ntfs_check_log_client_array() then walks the array bounded only by the<br \/>\non-disk log_clients count:<\/p>\n<p>        cr = ca + idx;<br \/>\n        if (cr-&gt;prev_client != LOGFILE_NO_CLIENT) &#8230;<\/p>\n<p>For log_clients 410 it dereferences records up to ca + 409 * 160,<br \/>\n~64 KiB past the kvzalloc(system_page_size) restart-page buffer &#8212; an<br \/>\nout-of-bounds read of attacker-controlled extent, reachable when a<br \/>\ncrafted NTFS image is mounted (load_and_check_logfile() at mount time).<br \/>\nThis is the in-kernel analogue of CVE-2022-30789, fixed in the ntfs-3g<br \/>\nuserspace driver but never in this revived classic driver.<\/p>\n<p>Compute the restart-area length in a u32 so the existing bounds check<br \/>\nrejects an over-large client array instead of being defeated by the<br \/>\ntruncation. Widen ra_ofs and ca_ofs to u32 as well: both are loaded<br \/>\nfrom __le16 on-disk fields and every comparison already promotes to<br \/>\nint\/size_t, so this changes no result and keeps the declaration uniform.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ntfs: fix u16 truncation of restart-area length check<\/p>\n<p>ntfs_check_restart_area() validates that the $LogFile restart area and<br \/>\nits t<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-12331","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/12331","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=12331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}