Description
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_tcm: fix deadlock in usbg_make_tpg() usbg_make_tpg() held dep_lock while calling configfs_depend_item_unlocked(), which acquires the configfs root inode lock when operating across subsystems. This creates a circular lock dependency with configfs_rmdir(): dep_lock -> configfs root inode lock -> su_mutex -> dep_lock In usbg_make_tpg(), dep_lock only serialized the read of opts->ready, which is a monotonic flag that transitions from false to true exactly once (in tcm_set_name()) and never reverts. Remove dep_lock from usbg_make_tpg() entirely and use READ_ONCE/WRITE_ONCE to access opts->ready locklessly instead.
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
4bb8548df632187d5db50878e71804af5f7c51ad to < abad5daa41cf5d0a0a9cba0397d3a0e7f11e0277affected4bb8548df632187d5db50878e71804af5f7c51ad to < 3639438a4c83ffc2e564c8c010b92137c5d11cfaaffected4bb8548df632187d5db50878e71804af5f7c51ad to < 78a14ea2284825055ab6c2a1f3489510f560f3a2affected4bb8548df632187d5db50878e71804af5f7c51ad to < eef3e62f90d86c1c5651742f84ecc9db1814a893affected4bb8548df632187d5db50878e71804af5f7c51ad to < f81a2da137b029a282b9bc64d2f267d242948659affected4bb8548df632187d5db50878e71804af5f7c51ad to < 6bcd9ee6ad6989d1d85a7459687e45b7ad7568d9affected4bb8548df632187d5db50878e71804af5f7c51ad to < d90b0f90e30cd59b36005a4016b15cf02bcd7fb2affected4bb8548df632187d5db50878e71804af5f7c51ad to < 9dbf74f4022f80f7669d2b3c22c5deb46c1b5674affected
Linux Linux
Default version status: affected
4.5affected0 to < 4.5unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.109 to ≤ 6.12.*unaffected6.18.50 to ≤ 6.18.*unaffected7.2.4 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/abad5daa41cf5d0a0a9cba0397d3a0e7f11e0277 ↗
- https://git.kernel.org/stable/c/3639438a4c83ffc2e564c8c010b92137c5d11cfa ↗
- https://git.kernel.org/stable/c/78a14ea2284825055ab6c2a1f3489510f560f3a2 ↗
- https://git.kernel.org/stable/c/eef3e62f90d86c1c5651742f84ecc9db1814a893 ↗
- https://git.kernel.org/stable/c/f81a2da137b029a282b9bc64d2f267d242948659 ↗
- https://git.kernel.org/stable/c/6bcd9ee6ad6989d1d85a7459687e45b7ad7568d9 ↗
- https://git.kernel.org/stable/c/d90b0f90e30cd59b36005a4016b15cf02bcd7fb2 ↗
- https://git.kernel.org/stable/c/9dbf74f4022f80f7669d2b3c22c5deb46c1b5674 ↗