CVE-2026-23292
Description
In the Linux kernel, the following vulnerability has been resolved: scsi: target: Fix recursive locking in __configfs_open_file() In flush_write_buffer, &p->frag_sem is acquired and then the loaded store function is called, which, here, is target_core_item_dbroot_store(). This function called filp_open(), following which these functions were called (in reverse order), according to the call trace: down_read __configfs_open_file do_dentry_open vfs_open do_open path_openat do_filp_open file_open_name filp_open target_core_item_dbroot_store flush_write_buffer configfs_write_iter target_core_item_dbroot_store() tries to validate the new file path by trying to open the file path provided to it; however, in this case, the bug report shows: db_root: not a directory: /sys/kernel/config/target/dbroot indicating that the same configfs file was tried to be opened, on which it is currently working on. Thus, it is trying to acquire frag_sem semaphore of the same file of which it already holds the semaphore obtained in flush_write_buffer(), leading to acquiring the semaphore in a nested manner and a possibility of recursive locking. Fix this by modifying target_core_item_dbroot_store() to use kern_path() instead of filp_open() to avoid opening the file using filesystem-specific function __configfs_open_file(), and further modifying it to make this fix compatible.
How to fix
- linux linux_kernel4.10, 4.15, 4.20, 6.1.167, 6.6.130, 6.12.77, 6.18.17, 6.19.7 or later
- git.kernel.org/stable/c/142eacb50fb903a4c10dee7e67b6e79ebb36a582
- git.kernel.org/stable/c/14d4ac19d1895397532eec407433c5d74d9da53b
- git.kernel.org/stable/c/3161ef61f121d4573cad5b57c92188dcd9b284b3
- git.kernel.org/stable/c/4fcfa424a581d823cb1a9676e3eefe6ca17e453a
- git.kernel.org/stable/c/9a5641024fbfd9b24fe65984ad85fea10a3ae438
- git.kernel.org/stable/c/e8ef82cb6443d5f3260b1b830e17f03dda4229ea
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| linux linux_kernel | 4.9.201 ≤ v < 4.10, 4.14.154 ≤ v < 4.15, 4.19.84 ≤ v < 4.20, 5.3.1 ≤ v < 6.1.167, 6.2 ≤ v < 6.6.130, 6.7 ≤ v < 6.12.77, 6.13 ≤ v < 6.18.17, 6.19 ≤ v < 6.19.7, 5.3, 7.0 | 4.10, 4.15, 4.20, 6.1.167, 6.6.130, 6.12.77, 6.18.17, 6.19.7 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.