{"id":24439,"date":"2026-09-16T20:32:19","date_gmt":"2026-09-16T12:32:19","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89782"},"modified":"2026-09-16T20:32:19","modified_gmt":"2026-09-16T12:32:19","slug":"cve-2026-89782","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89782","title":{"rendered":"CVE-2026-89782 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nfs\/ntfs3: reject rest"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>fs\/ntfs3: reject restart table growth beyond U16_MAX entries<\/p>\n<p>During $LogFile replay, log_replay() indexes the transaction table by the<br \/>\ntransact_id taken from the log record header.  check_log_rec() only<br \/>\nverifies that transact_id is non-zero and properly aligned, not its<br \/>\nmagnitude, so a crafted image can request an arbitrarily large index.<\/p>\n<p>alloc_rsttbl_from_idx() grows the table to cover that index via<br \/>\nextend_rsttbl(), which passes the new entry count to init_rsttbl():<\/p>\n<p>\trt = init_rsttbl(esize, used + add);<\/p>\n<p>used + add is computed as u32 but init_rsttbl() takes a u16, and the<br \/>\ncount is stored in struct RESTART_TABLE as a __le16.  When used + add<br \/>\nexceeds U16_MAX it is truncated, init_rsttbl() allocates a table far<br \/>\nsmaller than the index requires, and alloc_rsttbl_from_idx() then<br \/>\ndereferences and writes at the original, untruncated offset &#8212; an<br \/>\nout-of-bounds access past the allocation, reachable by mounting a<br \/>\ncrafted NTFS image.<\/p>\n<p> BUG: KASAN: use-after-free in alloc_rsttbl_from_idx (fs\/ntfs3\/fslog.c:950)<br \/>\n Read of size 4 at addr ffff8880327ffff8 by task exploit<br \/>\n  alloc_rsttbl_from_idx (fs\/ntfs3\/fslog.c:950)<br \/>\n  log_replay (fs\/ntfs3\/fslog.c:4562)<br \/>\n  ntfs_loadlog_and_replay (fs\/ntfs3\/fsntfs.c:324)<br \/>\n  ntfs_fill_super (fs\/ntfs3\/super.c:1393)<br \/>\n  get_tree_bdev_flags<br \/>\n  vfs_get_tree<br \/>\n  path_mount<br \/>\n  __x64_sys_mount<\/p>\n<p>A restart table is limited to U16_MAX entries by its __le16 count, so a<br \/>\nlarger growth request is invalid input.  Reject it in extend_rsttbl();<br \/>\nall callers already handle a NULL return.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>fs\/ntfs3: reject restart table growth beyond U16_MAX entries<\/p>\n<p>During $LogFile replay, log_replay() indexes the transaction table by<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-24439","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/24439","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=24439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}