{"id":28516,"date":"2026-09-25T00:31:35","date_gmt":"2026-09-24T16:31:35","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93252"},"modified":"2026-09-25T00:31:35","modified_gmt":"2026-09-24T16:31:35","slug":"cve-2026-93252","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93252","title":{"rendered":"CVE-2026-93252 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: fix circular l"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ocfs2: fix circular locking dependency in ocfs2_init_acl()<\/p>\n<p>A lockdep warning indicates a circular locking dependency between<br \/>\n`&amp;oi-&gt;ip_xattr_sem` and `&amp;journal-&gt;j_trans_barrier`:<\/p>\n<p>WARNING: possible circular locking dependency detected<br \/>\nis trying to acquire lock:<br \/>\n (&amp;oi-&gt;ip_xattr_sem){++++}-{4:4}, at: ocfs2_init_acl+0x2fd\/0x7e0<br \/>\n fs\/ocfs2\/acl.c:367<\/p>\n<p>but task is already holding lock:<br \/>\n (&amp;journal-&gt;j_trans_barrier){.+.+}-{4:4}, at: ocfs2_start_trans+0x3ab\/0x700<br \/>\n fs\/ocfs2\/journal.c:369<\/p>\n<p>The deadlock involves two code paths: Path 1 (setxattr) where<br \/>\n`ocfs2_xattr_set()` acquires `ip_xattr_sem` (write) and then starts a<br \/>\ntransaction, which acquires `j_trans_barrier` (read); and Path 2<br \/>\n(mkdir\/mknod) where `ocfs2_mknod()` starts a transaction (`j_trans_barrier`<br \/>\nread) and then calls `ocfs2_init_acl()`, which attempts to acquire<br \/>\n`ip_xattr_sem` (read) on the parent directory to retrieve the default ACL.<\/p>\n<p>Because rw_semaphores are subject to writer priority, a pending writer on<br \/>\n`j_trans_barrier` (e.g., the journal commit thread) can cause Path 1 to<br \/>\nblock, while Path 2 is blocked waiting for Path 1 to release<br \/>\n`ip_xattr_sem`.<\/p>\n<p>The patch fixes the lock ordering by precomputing the ACL state before<br \/>\nstarting the OCFS2 transaction, while preserving POSIX ACL storage<br \/>\nsemantics and the existing inode\/security initialization order. By reading<br \/>\nthe parent directory&#8217;s default ACL and preparing the new inode&#8217;s ACLs<br \/>\noutside the transaction, `ip_xattr_sem` is always acquired before<br \/>\n`j_trans_barrier`.<\/p>\n<p>`struct ocfs2_acl_state` encapsulates the prepared ACL state, while<br \/>\n`ocfs2_acl_init_prepare()` and `ocfs2_acl_init_release()` avoid code<br \/>\nduplication between `ocfs2_mknod()` and `ocfs2_init_security_and_acl()`.<br \/>\n`ocfs2_calc_xattr_init()` and `ocfs2_init_acl()` use this precomputed<br \/>\nstate, removing internal `ip_xattr_sem` acquisition and redundant disk<br \/>\nreads.<\/p>\n<p>Additionally, remove the `ip_xattr_sem` acquisition from<br \/>\n`ocfs2_xattr_set_handle()`. This function is only used while initializing a<br \/>\nnew inode that has not yet been inserted into the inode hash or attached to<br \/>\na dentry, meaning there is no risk of concurrent access and the lock is<br \/>\nunnecessary.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ocfs2: fix circular locking dependency in ocfs2_init_acl()<\/p>\n<p>A lockdep warning indicates a circular locking dependency between<br \/>\n`&amp;oi-<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-28516","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/28516","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=28516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}