CVE-2026-97619

io_uring/rw: end write accounting from ->ki_complete

State
Published
Severity
Not scored
Published
Sep 25, 2026
Updated
Oct 30, 2026
Reserved
Sep 24, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

io_uring/rw: end write accounting from ->ki_complete

Commit b000145e9907 moved both the fsnotify calls and the write accounting out of the kiocb completion handler and into the io_req_rw_complete() task_work. However, only the fsnotify part actually needed to move as it may sleep. Ending the write accounting is just a percpu_up_read() on the superblock writers sem.

Deferring it is a problem, because it makes dropping SB_FREEZE_WRITE protection depend on the ring owner getting to running task_work. But the task may be blocked in freeze_super(), causing it to never get to that:

task io-wq worker -------------------------------------------------------------- io_write() io_kiocb_start_write() (takes sb_writers, hidden from lockdep by __sb_writers_release) write_iter() -> -EIOCBQUEUED ioctl(FS_IOC_SHUTDOWN) bdev_freeze() freeze_super() percpu_down_write() <- waits for the reader above io_write() kiocb_start_write() percpu_down_read() <- queued behind the writer <bio completes> io_complete_rw() queues io_req_rw_complete() <- never runs, task is in D state

End the write from io_complete_rw() instead, and leave only the fsnotify calls in task_work.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • ea2e6286e3e89a115ae554e20ba9aec2b2e1ddff to before aa4a3bec32ffe20ba1044db8211140edf7637310Affected
  • 89a410dbd0f159ddd308f19d6eb682fc753e4771 to before 16840e3478c72ebbf093c52cbdcd8a1f12fad692Affected
  • b000145e9907809406d8164c3b2b8861d95aecd1 to before ed1cead97afb9c398bd7ab344a3c1ee34ab73af9Affected
  • b000145e9907809406d8164c3b2b8861d95aecd1 to before 696459029f3b65c070c91b729478475582f1dcdfAffected
  • b000145e9907809406d8164c3b2b8861d95aecd1 to before cc580cee4dfa2ec9099c30ecbd4d804cbb996432Affected
  • b000145e9907809406d8164c3b2b8861d95aecd1 to before 055d43a1233edbd80e558889258105ce63051bcdAffected
  • b000145e9907809406d8164c3b2b8861d95aecd1 to before 796aa0547557e63338657ed1c487906f9fac4c73Affected
  • 2a853c206e553dd9c0a55c22858fd6a446d93e15Affected
  • 5.10.165 to before 5.10.273Affected
  • 5.15.90 to before 5.15.224Affected
  • 6.0.3 to before 6.1Affected
LinuxLinux
  • 6.1Affected
  • before 6.1Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.112 through 6.12.*Not affected
  • 6.18.53 through 6.18.*Not affected
  • 7.2.7 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.