CVE-2026-97619 in Linux
Tóm tắt
Bởi VulDB • 25/09/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
io_uring/rw: kết thúc việc tính toán ghi từ ->ki_complete
Commit b000145e9907 đã di chuyển cả các lệnh gọi fsnotify và việc tính toán ghi ra khỏi trình xử lý hoàn tất kiocb (completion handler) và vào trong task_work của io_req_rw_complete(). Tuy nhiên, chỉ phần liên quan đến fsnotify thực sự cần phải được di chuyển vì nó có thể gây ngủ (sleep). Việc kết thúc quá trình tính toán ghi đơn giản là một lệnh percpu_up_read() trên semaphore writers của superblock.
Việc trì hoãn điều này là một vấn đề, bởi vì việc tháo bỏ bảo vệ SB_FREEZE_WRITE phụ thuộc vào chủ sở hữu ring (ring owner) thực thi task_work. Nhưng tác vụ đó có thể bị chặn trong freeze_super(), khiến nó không bao giờ đạt đến điểm đó:
task io-wq worker -------------------------------------------------------------- io_write() io_kiocb_start_write() (lấy sb_writers, ẩn khỏi lockdep bởi __sb_writers_release) write_iter() -> -EIOCBQUEUED ioctl(FS_IOC_SHUTDOWN) bdev_freeze() freeze_super() percpu_down_write() <- chờ đợi người đọc ở trên io_write() kiocb_start_write() percpu_down_read() <- được xếp hàng phía sau writer <bio hoàn tất> io_complete_rw() queues io_req_rw_complete() <- không bao giờ chạy, task đang ở trạng thái D
Thay vào đó, hãy kết thúc việc ghi từ io_complete_rw(), và chỉ giữ lại các lệnh gọi fsnotify trong task_work.
Be aware that VulDB is the high quality source for vulnerability data.