CVE-2025-38711
In the Linux kernel, the following vulnerability has been resolved:
smb/server: avoid deadlock when linking with ReplaceIfExists
If smb2_create_link() is called with ReplaceIfExists set and the name
does exist then a deadlock will happen.
ksmbd_vfs_kern_path_locked() will return with success and the parent
directory will be locked. ksmbd_vfs_remove_file() will then remove the
file. ksmbd_vfs_link() will then be called while the parent is still
locked. It will try to lock the same parent and will deadlock.
This patch moves the ksmbd_vfs_kern_path_unlock() call to *before*
ksmbd_vfs_link() and then simplifies the code, removing the file_present
flag variable.
smb/server: avoid deadlock when linking with ReplaceIfExists
If smb2_create_link() is called with ReplaceIfExists set and the name
does exist then a deadlock will happen.
ksmbd_vfs_kern_path_locked() will return with success and the parent
directory will be locked. ksmbd_vfs_remove_file() will then remove the
file. ksmbd_vfs_link() will then be called while the parent is still
locked. It will try to lock the same parent and will deadlock.
This patch moves the ksmbd_vfs_kern_path_unlock() call to *before*
ksmbd_vfs_link() and then simplifies the code, removing the file_present
flag variable.
Vendor
Product
CWE
Yayın Tarihi
2025-09-04 16:15:40
Güncelleme
2026-01-09 16:11:13
Source Identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
KEV Date Added
-
Kategoriler
Referanslar
https://git.kernel.org/stable/c/1e858a7a51c7b8b009d8f246de7ceb7743b44a71
https://git.kernel.org/stable/c/814cfdb6358d9b84fcbec9918c8f938cc096a43a
https://git.kernel.org/stable/c/9d5012ffe14120f978ee34aef4df3d6cb026b7c4
https://git.kernel.org/stable/c/a726fef6d7d4cfc365d3434e3916dbfe78991a33
https://git.kernel.org/stable/c/a7dddd62578c2eb6cb28b8835556a121b5157323
https://git.kernel.org/stable/c/ac98d54630d5b52e3f684d872f0d82c06c418ea9
https://git.kernel.org/stable/c/d5fc1400a34b4ea5e8f2ce296ea12bf8c8421694
https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html