Description
In the Linux kernel, the following vulnerability has been resolved: nilfs2: fix potential UAF of struct nilfs_sc_info in nilfs_segctor_thread() The finalization of nilfs_segctor_thread() can race with nilfs_segctor_kill_thread() which terminates that thread, potentially causing a use-after-free BUG as KASAN detected. At the end of nilfs_segctor_thread(), it assigns NULL to "sc_task" member of "struct nilfs_sc_info" to indicate the thread has finished, and then notifies nilfs_segctor_kill_thread() of this using waitqueue "sc_wait_task" on the struct nilfs_sc_info. However, here, immediately after the NULL assignment to "sc_task", it is possible that nilfs_segctor_kill_thread() will detect it and return to continue the deallocation, freeing the nilfs_sc_info structure before the thread does the notification. This fixes the issue by protecting the NULL assignment to "sc_task" and its notification, with spinlock "sc_state_lock" of the struct nilfs_sc_info. Since nilfs_segctor_kill_thread() does a final check to see if "sc_task" is NULL with "sc_state_lock" locked, this can eliminate the race.
Product status
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 034cce77d52ba013ce62b4f5258c29907eb1ada5
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 0dbf0e64b91ee8fcb278aea93eb06fc7d56ecbcc
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 613bf23c070d11c525268f2945aa594704a9b764
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before f32297dba338dc06d62286dedb3cdbd5175b1719
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 92684e02654c91a61a0b0561433b710bcece19fe
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before bae009a2f1b7c2011d2e92d8c84868d315c0b97e
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before b4d80bd6370b81a1725b6b8f7894802c23a14e9f
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 6be49d100c22ffea3287a4b19d7639d259888e33
4.14.313
4.19.281
5.4.241
5.10.178
5.15.107
6.1.24
6.2.11
6.3
References
git.kernel.org/...c/034cce77d52ba013ce62b4f5258c29907eb1ada5
git.kernel.org/...c/0dbf0e64b91ee8fcb278aea93eb06fc7d56ecbcc
git.kernel.org/...c/613bf23c070d11c525268f2945aa594704a9b764
git.kernel.org/...c/f32297dba338dc06d62286dedb3cdbd5175b1719
git.kernel.org/...c/92684e02654c91a61a0b0561433b710bcece19fe
git.kernel.org/...c/bae009a2f1b7c2011d2e92d8c84868d315c0b97e
git.kernel.org/...c/b4d80bd6370b81a1725b6b8f7894802c23a14e9f
git.kernel.org/...c/6be49d100c22ffea3287a4b19d7639d259888e33