{"id":25868,"date":"2026-09-18T04:32:00","date_gmt":"2026-09-17T20:32:00","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-92499"},"modified":"2026-09-18T04:32:00","modified_gmt":"2026-09-17T20:32:00","slug":"cve-2026-92499","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-92499","title":{"rendered":"CVE-2026-92499 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\next4: validate readdi"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ext4: validate readdir offset before accessing dirent<\/p>\n<p>A corrupted directory can trigger the following KASAN report when<br \/>\next4_readdir() resumes from an invalid position:<\/p>\n<p>  BUG: KASAN: use-after-free in __ext4_check_dir_entry+0x5ef\/0x820<br \/>\n  Read of size 2 at addr ffff88810a646000 by task repro_linear\/509<\/p>\n<p>  Call Trace:<\/p>\n<p>   dump_stack_lvl+0x53\/0x70<br \/>\n   print_report+0xd0\/0x630<br \/>\n   kasan_report+0xce\/0x100<br \/>\n   __ext4_check_dir_entry+0x5ef\/0x820<br \/>\n   ext4_readdir+0xcde\/0x2b70<br \/>\n   iterate_dir+0x1a1\/0x520<br \/>\n   __x64_sys_getdents64+0x12b\/0x220<br \/>\n   do_syscall_64+0xf9\/0x540<br \/>\n   entry_SYSCALL_64_after_hwframe+0x77\/0x7f<\/p>\n<p>KASAN reports use-after-free because the out-of-bounds access lands in an<br \/>\nadjacent freed page. The directory buffer itself is still referenced.<\/p>\n<p>ext4_dir_llseek() invalidates the directory cookie so that ext4_readdir()<br \/>\nrescans directory entries from the start of the block. The rescan checks<br \/>\nonly the lower bound of rec_len before advancing. A corrupted rec_len can<br \/>\ntherefore place the offset where the block has insufficient space for a<br \/>\ncomplete directory entry. The rescan itself may dereference that truncated<br \/>\nentry, or the main loop may pass it to __ext4_check_dir_entry(). The latter<br \/>\nreads de-&gt;rec_len before validating the range. For example:<\/p>\n<p>  block offset  0                           4092  4096<br \/>\n                |&#8212;- de1.rec_len = 4092 &#8212;&#8211;|&#8212;-|<br \/>\n                                               de2.inode<br \/>\n                                                    | de2.rec_len<br \/>\n                                                    ^ OOB, reported as UAF<\/p>\n<p>de2 starts at offset 4092 in this 4 KiB block. Its four-byte inode fits in<br \/>\nthe block, but its rec_len starts at offset 4096 and crosses the boundary.<\/p>\n<p>The minimum safe length is inode-dependent. Encrypted and casefolded<br \/>\ndirectory entries need eight additional hash bytes, while a valid metadata<br \/>\nchecksum tail is only 12 bytes.<\/p>\n<p>Cache the metadata checksum feature state and derive the minimum directory<br \/>\nentry length from the on-disk format. Use it to bound both the rescan and<br \/>\nthe offset passed to the main loop. Report an offset in a truncated block<br \/>\ntail and skip the remainder of the block, while continuing to accept an<br \/>\noffset exactly at the block boundary.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ext4: validate readdir offset before accessing dirent<\/p>\n<p>A corrupted directory can trigger the following KASAN report when<br \/>\next4_readd<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25868","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25868","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=25868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}