Description
In the Linux kernel, the following vulnerability has been resolved: ksmbd: call ksmbd_vfs_kern_path_end_removing() on some error paths There are two places where ksmbd_vfs_kern_path_end_removing() needs to be called in order to balance what the corresponding successful call to ksmbd_vfs_kern_path_start_removing() has done, i.e. drop inode locks and put the taken references. Otherwise there might be potential deadlocks and unbalanced locks which are caught like: BUG: workqueue leaked lock or atomic: kworker/5:21/0x00000000/7596 last function: handle_ksmbd_work 2 locks held by kworker/5:21/7596: #0: ffff8881051ae448 (sb_writers#3){.+.+}-{0:0}, at: ksmbd_vfs_kern_path_locked+0x142/0x660 #1: ffff888130e966c0 (&type->i_mutex_dir_key#3/1){+.+.}-{4:4}, at: ksmbd_vfs_kern_path_locked+0x17d/0x660 CPU: 5 PID: 7596 Comm: kworker/5:21 Not tainted 6.1.162-00456-gc29b353f383b #138 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-debian-1.17.0-1 04/01/2014 Workqueue: ksmbd-io handle_ksmbd_work Call Trace: <TASK> dump_stack_lvl+0x44/0x5b process_one_work.cold+0x57/0x5c worker_thread+0x82/0x600 kthread+0x153/0x190 ret_from_fork+0x22/0x30 </TASK> Found by Linux Verification Center (linuxtesting.org).
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
9d5012ffe14120f978ee34aef4df3d6cb026b7c4 to < 8e3a3192ef78d8302916408d62813b1fddfc8972affectedac98d54630d5b52e3f684d872f0d82c06c418ea9 to < f221baa80e5959a0c08a7e34abbf2a4d3cf0e1c2affected1e858a7a51c7b8b009d8f246de7ceb7743b44a71 to < cf29329a13df79c198b45dfc92577638d30b56faaffected814cfdb6358d9b84fcbec9918c8f938cc096a43a to < 34d6691933682f0516259a31b39d2cebcedec0a5affectedd5fc1400a34b4ea5e8f2ce296ea12bf8c8421694 to < 0c578e8065c4b08d5635a4cbc0f6321df9d20f79affectedd5fc1400a34b4ea5e8f2ce296ea12bf8c8421694 to < 4c38600feb81c670edb82e49d201d3d2d00cd4c3affectedd5fc1400a34b4ea5e8f2ce296ea12bf8c8421694 to < a09dc10d1353f0e92c21eae2a79af1c2b1ddcde8affecteda7dddd62578c2eb6cb28b8835556a121b5157323affecteda726fef6d7d4cfc365d3434e3916dbfe78991a33affected5.15.190 to < 5.15.203affected6.1.149 to < 6.1.167affected6.6.103 to < 6.6.130affected6.12.43 to < 6.12.78affected6.15.11 to < 6.16affected6.16.2 to < 6.17affected
Linux Linux
Default version status: affected
6.17affected0 to < 6.17unaffected5.15.203 to ≤ 5.15.*unaffected6.1.167 to ≤ 6.1.*unaffected6.6.130 to ≤ 6.6.*unaffected6.12.78 to ≤ 6.12.*unaffected6.18.17 to ≤ 6.18.*unaffected6.19.4 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/8e3a3192ef78d8302916408d62813b1fddfc8972 ↗
- https://git.kernel.org/stable/c/f221baa80e5959a0c08a7e34abbf2a4d3cf0e1c2 ↗
- https://git.kernel.org/stable/c/cf29329a13df79c198b45dfc92577638d30b56fa ↗
- https://git.kernel.org/stable/c/34d6691933682f0516259a31b39d2cebcedec0a5 ↗
- https://git.kernel.org/stable/c/0c578e8065c4b08d5635a4cbc0f6321df9d20f79 ↗
- https://git.kernel.org/stable/c/4c38600feb81c670edb82e49d201d3d2d00cd4c3 ↗
- https://git.kernel.org/stable/c/a09dc10d1353f0e92c21eae2a79af1c2b1ddcde8 ↗