{"id":25872,"date":"2026-09-18T04:32:00","date_gmt":"2026-09-17T20:32:00","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-92503"},"modified":"2026-09-18T04:32:00","modified_gmt":"2026-09-17T20:32:00","slug":"cve-2026-92503","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-92503","title":{"rendered":"CVE-2026-92503 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\next4: fix ABBA deadlo"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ext4: fix ABBA deadlock in ext4_xattr_inode_cache_find()<\/p>\n<p>Syzbot\/stress-ng reported an ABBA deadlock in ext4 when exercising<br \/>\nconcurrent xattr workloads (using the ea_inode mount\/format option).<\/p>\n<p>The deadlock occurs between the running transaction and the eviction<br \/>\nthread:<br \/>\n&#8211; Task 1 (stress-ng): Holds a reference to a shared mbcache_entry (ce)<br \/>\n  and calls ext4_xattr_inode_cache_find() -&gt; ext4_iget() to retrieve<br \/>\n  the corresponding EA inode. Since the EA inode is currently being<br \/>\n  evicted, ext4_iget() blocks in __wait_on_freeing_inode() waiting for<br \/>\n  eviction to complete.<br \/>\n&#8211; Task 2 (eviction thread): Currently evicting the same EA inode in<br \/>\n  ext4_evict_ea_inode(). It calls mb_cache_entry_wait_unused(oe) which<br \/>\n  blocks waiting for Task 1 to release the reference to the mbcache_entry.<\/p>\n<p>To break this deadlock, implement a new ext4_iget() configuration flag<br \/>\nnamed EXT4_IGET_NOWAIT. When set, perform a non-blocking lookup of the<br \/>\ninode via VFS&#8217;s find_inode_nowait() API.<\/p>\n<p>If the inode is currently being evicted (marked with I_FREEING or<br \/>\nI_WILL_FREE) or created (I_CREATING), or if it is not present in the VFS<br \/>\ninode cache (cache miss), simply skip it (returning -ENOENT) rather than<br \/>\nwaiting for eviction\/creation to complete, breaking the ABBA cycle.<\/p>\n<p>Since we return -ENOENT immediately on a cache miss, we never attempt to<br \/>\nallocate a new inode or call iget_locked(), completely eliminating any<br \/>\nTOCTOU race window.<\/p>\n<p>If the returned inode is I_NEW, wait for its initialization to clear via<br \/>\nwait_on_new_inode(). If initialization fails and the inode is unhashed<br \/>\nduring wait_on_new_inode() waking up (e.g., due to an I\/O read error in<br \/>\nanother thread), safely drop the reference and return -ENOENT. This<br \/>\nunhashed check is executed unconditionally on all cache-hit pathways to<br \/>\nproperly handle concurrent initialization failures.<\/p>\n<p>Finally, standard validation checks (including is_bad_inode,<br \/>\nEXT4_EA_INODE_FL, file_acl, and xattr flags) are executed as normal inside<br \/>\ncheck_igot_inode() to fully guarantee VFS-layer safety.<\/p>\n<p>In ext4_xattr_inode_cache_find(), invoke ext4_iget() with the new<br \/>\nEXT4_IGET_NOWAIT flag to perform the non-blocking cache search.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ext4: fix ABBA deadlock in ext4_xattr_inode_cache_find()<\/p>\n<p>Syzbot\/stress-ng reported an ABBA deadlock in ext4 when exercising<br \/>\nconcur<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25872","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25872","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=25872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}