{"id":29051,"date":"2026-09-25T20:31:45","date_gmt":"2026-09-25T12:31:45","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97619"},"modified":"2026-09-25T20:31:45","modified_gmt":"2026-09-25T12:31:45","slug":"cve-2026-97619","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97619","title":{"rendered":"CVE-2026-97619 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nio_uring\/rw: end writ"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>io_uring\/rw: end write accounting from -&gt;ki_complete<\/p>\n<p>Commit b000145e9907 moved both the fsnotify calls and the write<br \/>\naccounting out of the kiocb completion handler and into the<br \/>\nio_req_rw_complete() task_work. However, only the fsnotify part actually<br \/>\nneeded to move as it may sleep. Ending the write accounting is just a<br \/>\npercpu_up_read() on the superblock writers sem.<\/p>\n<p>Deferring it is a problem, because it makes dropping SB_FREEZE_WRITE<br \/>\nprotection depend on the ring owner getting to running task_work. But<br \/>\nthe task may be blocked in freeze_super(), causing it to never get to<br \/>\nthat:<\/p>\n<p>  task                             io-wq worker<br \/>\n  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n  io_write()<br \/>\n    io_kiocb_start_write()         (takes sb_writers, hidden from<br \/>\n                                    lockdep by __sb_writers_release)<br \/>\n    write_iter() -&gt; -EIOCBQUEUED<br \/>\n  ioctl(FS_IOC_SHUTDOWN)<br \/>\n    bdev_freeze()<br \/>\n      freeze_super()<br \/>\n        percpu_down_write()        &lt;- waits for the reader above<br \/>\n                                   io_write()<br \/>\n                                     kiocb_start_write()<br \/>\n                                       percpu_down_read()  &lt;- queued<br \/>\n                                                              behind the<br \/>\n                                                              writer<\/p>\n<p>    io_complete_rw()<br \/>\n      queues io_req_rw_complete()  &lt;- never runs, task is in D state<\/p>\n<p>End the write from io_complete_rw() instead, and leave only the fsnotify<br \/>\ncalls in task_work.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>io_uring\/rw: end write accounting from -&gt;ki_complete<\/p>\n<p>Commit b000145e9907 moved both the fsnotify calls and the write<br \/>\naccounting ou<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29051","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29051","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=29051"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29051"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29051"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}