CVE-2022-49995

Summary

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

writeback: avoid use-after-free after removing device

When a disk is removed, bdi_unregister gets called to stop further writeback and wait for associated delayed work to complete. However, wb_inode_writeback_end() may schedule bandwidth estimation dwork after this has completed, which can result in the timer attempting to access the just freed bdi_writeback.

Fix this by checking if the bdi_writeback is alive, similar to when scheduling writeback work.

Since this requires wb->work_lock, and wb_inode_writeback_end() may get called from interrupt, switch wb->work_lock to an irqsafe lock.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux45a2966fd64147518dc5bca25f447bd0fb5359ac < f96b9f7c1676923bce871e728bb49c0dfa5013ccaffected
LinuxLinux45a2966fd64147518dc5bca25f447bd0fb5359ac < 9a6c710f3bc10bc9cc23e1c080b53245b7f9d5b7affected
LinuxLinux45a2966fd64147518dc5bca25f447bd0fb5359ac < f87904c075515f3e1d8f4a7115869d3b914674fdaffected
LinuxLinux5.15affected
LinuxLinux0 < 5.15unaffected
LinuxLinux5.15.64 <= 5.15.*unaffected
LinuxLinux5.19.6 <= 5.19.*unaffected
LinuxLinux6.0 <= *unaffected

Weaknesses

References