Description
In the Linux kernel, the following vulnerability has been resolved: ntfs3: fix circular locking dependency in run_unpack_ex Syzbot reported a circular locking dependency between wnd->rw_lock (sbi->used.bitmap) and ni->file.run_lock. The deadlock scenario: 1. ntfs_extend_mft() takes ni->file.run_lock then wnd->rw_lock. 2. run_unpack_ex() takes wnd->rw_lock then tries to acquire ni->file.run_lock inside ntfs_refresh_zone(). This creates an AB-BA deadlock. Fix this by using down_read_trylock() instead of down_read() when acquiring run_lock in run_unpack_ex(). If the lock is contended, skip ntfs_refresh_zone() - the MFT zone will be refreshed on the next MFT operation. This breaks the circular dependency since we never block waiting for run_lock while holding wnd->rw_lock.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
57f7979aefdcef66326bda47e07ee0d8be64bf21 to < d60f09d2d16c44a797d8cb67015cde2508720506affecteddb7fc56646cafe39599a4c21f1398e2bdfd5c185 to < 76016d15bbd90caa0ce7765fddf9bde8e943e601affected5fc982fe7eca9d0cf7b25832450ebd4f7c8e1c36 to < b014372b62237521444ee51384549bdf48b79015affected5fc982fe7eca9d0cf7b25832450ebd4f7c8e1c36 to < b8d22d9d8260b0f4f4d8e2898c98037c9982ea66affected5fc982fe7eca9d0cf7b25832450ebd4f7c8e1c36 to < 08ce2fee1b869ecbfbd94e0eb2630e52203a2e03affected6.6.66 to < 6.6.160affected6.12.5 to < 6.12.114affected
Linux Linux
Default version status: affected
6.13affected0 to < 6.13unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.16 to ≤ 6.18.*unaffected6.19.6 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/d60f09d2d16c44a797d8cb67015cde2508720506 ↗
- https://git.kernel.org/stable/c/76016d15bbd90caa0ce7765fddf9bde8e943e601 ↗
- https://git.kernel.org/stable/c/b014372b62237521444ee51384549bdf48b79015 ↗
- https://git.kernel.org/stable/c/b8d22d9d8260b0f4f4d8e2898c98037c9982ea66 ↗
- https://git.kernel.org/stable/c/08ce2fee1b869ecbfbd94e0eb2630e52203a2e03 ↗