{"id":25549,"date":"2026-09-18T04:31:32","date_gmt":"2026-09-17T20:31:32","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90140"},"modified":"2026-09-18T04:31:32","modified_gmt":"2026-09-17T20:31:32","slug":"cve-2026-90140","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90140","title":{"rendered":"CVE-2026-90140 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ncuse: wait for pendin"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>cuse: wait for pending RCU callbacks on module exit<\/p>\n<p>Since commit 053fc4f755ad (&#8220;fuse: fix UAF in rcu pathwalks&#8221;),<br \/>\nfuse_conn_put() frees the fuse_conn through call_rcu() rather than<br \/>\nsynchronously.  For cuse, fc-&gt;release is cuse_fc_release(), which<br \/>\nlives in the cuse module.  If the module is removed before the RCU<br \/>\ngrace period ends, the callback jumps into freed module memory:<\/p>\n<p>      userspace \/ module unload      |        RCU softirq<br \/>\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br \/>\n close(\/dev\/cuse)                    |<br \/>\n  cuse_channel_release()             |<br \/>\n   fuse_dev_release()                |<br \/>\n    fuse_conn_put(fch-&gt;conn)         |<br \/>\n     call_rcu(delayed_release) &#8212;&#8212;+&#8212;&gt; callback queued<br \/>\n                                     |<br \/>\n rmmod cuse                          |<br \/>\n  cuse_exit()                        |<br \/>\n   cuse_channel_destroy()            |<br \/>\n   &#8230;                               |<br \/>\n   return                            |<br \/>\n                                     |<br \/>\n                  |<br \/>\n                                     |  rcu_do_batch()<br \/>\n                                     |   delayed_release()<br \/>\n                                     |    fc-&gt;release()<br \/>\n                                     |     -&gt; cuse_fc_release()<br \/>\n                                     |        ^^^ freed text!<\/p>\n<p>The freed module text is unmapped by vfree(), so the jump into the<br \/>\nstale callback triggers a page-fault Oops.  If the virtual address<br \/>\nis subsequently reused, the callback could execute unrelated code<br \/>\n(undefined behaviour).<\/p>\n<p>Fix this by calling rcu_barrier() in cuse_exit() so that any pending<br \/>\nfuse_conn release callback completes before the module is removed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>cuse: wait for pending RCU callbacks on module exit<\/p>\n<p>Since commit 053fc4f755ad (&#8220;fuse: fix UAF in rcu pathwalks&#8221;),<br \/>\nfuse_conn_put() <\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25549","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25549","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=25549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}