CVE-2026-97619 in Linux
要約
〜によって VulDB • 2026年09月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
io_uring/rw: ->ki_complete から書き込みアカウンティングを終了する
コミット b000145e9907 は、fsnotify 呼び出しと書き込みアカウンティングの両方を kiocb の完了ハンドラから io_req_rw_complete() の task_work に移動させました。しかし、スリープする可能性があるのは fsnotify の部分のみが実際に移動する必要がありましたが、書き込みアカウンティングを終了するのは単に superblock writers セマフォに対する percpu_up_read() です。
これを延期することは問題です。なぜなら、SB_FREEZE_WRITE 保護の解除がリング所有者による task_workの実行に依存してしまうからです。しかし、タスクは freeze_super() でブロックされる可能性があり、その結果、task_work に到達できないことがあります:
``` タスク io-wq ワーカー -------------------------------------------------------------- io_write() io_kiocb_start_write() (sb_writers を取得し、 lockdep からは __sb_writers_release によって隠蔽される) write_iter() -> -EIOCBQUEUED ioctl(FS_IOC_SHUTDOWN) bdev_freeze() freeze_super() percpu_down_write() <- 上記のリーダーを待機する io_write() kiocb_start_write() percpu_down_read() <- ライターの背後にキューイングされる <bio が完了> io_complete_rw() io_req_rw_complete() をキューイング <- 実行されない。タスクは D 状態にある
代わりに io_complete_rw() から書き込みを終了し、task_work に fsnotify の呼び出しのみを残す。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.