{"id":7141,"date":"2026-09-04T18:49:26","date_gmt":"2026-09-04T10:49:26","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72472"},"modified":"2026-09-04T18:49:26","modified_gmt":"2026-09-04T10:49:26","slug":"cve-2026-72472","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-72472","title":{"rendered":"CVE-2026-72472 [CRITICAL] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnfs: use nfsi-&gt;rwsem"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>nfs: use nfsi-&gt;rwsem to protect traversal of the file lock list<\/p>\n<p>Lingfeng identified a bug and suggested two solutions, but both appear<br \/>\nto have issues.<\/p>\n<p>Generally, we cannot release flc_lock while iterating over the file lock<br \/>\nlist to avoid use-after-free (UAF) problems with file locks. However,<br \/>\nfunctions like nfs_delegation_claim_locks and nfs4_reclaim_locks cannot<br \/>\nadhere to this rule because recover_lock or nfs4_lock_delegation_recall<br \/>\nmay take a long time. To resolve this, NFS switches to using nfsi-&gt;rwsem<br \/>\nfor the same protection, and nfs_reclaim_locks follows this approach.<br \/>\nAlthough nfs_delegation_claim_locks uses so_delegreturn_mutex instead,<br \/>\nthis is inadequate since a single inode can have multiple nfs4_state<br \/>\ninstances. Therefore, the fix is to also use nfsi-&gt;rwsem in this case.<\/p>\n<p>Furthermore, after commit c69899a17ca4 (&#8220;NFSv4: Update of VFS byte range<br \/>\nlock must be atomic with the stateid update&#8221;), the functions<br \/>\nnfs4_locku_done and nfs4_lock_done also break this rule because they<br \/>\ncall locks_lock_inode_wait without holding nfsi-&gt;rwsem. Simply adding<br \/>\nthis protection could cause many deadlocks, so instead, the call to<br \/>\nlocks_lock_inode_wait is moved into _nfs4_proc_setlk. Regarding the bug<br \/>\nfixed by commit c69899a17ca4 (&#8220;NFSv4: Update of VFS byte range<br \/>\nlock must be atomic with the stateid update&#8221;), it has been resolved<br \/>\nafter commit 0460253913e5 (&#8220;NFSv4: nfs4_do_open() is incorrectly triggering<br \/>\nstate recovery&#8221;) because all slots are drained before calling<br \/>\nnfs4_do_reclaim, which prevents concurrent stateid changes along this path.<br \/>\nAlso, nfs_delegation_claim_locks does not cause this concurrency either<br \/>\nsince when _nfs4_proc_setlk is called with NFS_DELEGATED_STATE, no RPC is<br \/>\nsent, so nfs4_lock_done is not called. Therefore,<br \/>\nnfs4_lock_delegation_recall from nfs_delegation_claim_locks is the first<br \/>\ntime the stateid is set.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>nfs: use nfsi-&gt;rwsem to protect traversal of the file lock list<\/p>\n<p>Lingfeng identified a bug and suggested two solutions, but both ap<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-7141","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/7141","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=7141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}