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.
| Product | Vendor | Version |
|---|---|---|
| Linux | Linux | 15.5(1)SY5 |
| Linux | Linux | 15.5(1)SY6 |
| Linux | Linux | Windows Server 2016 (Server Core installation) |
| Linux | Linux | Windows 10 Version 1803 for x64-based Systems |