Critical · published July 25, 2026
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: serialize QUERY_DIRECTORY requests per file
smb2_query_dir() stores a pointer to its stack-allocated private data in
the ksmbd_file readdir_data. Concurrent QUERY_DIRECTORY requests using the
same file handle can overwrite this pointer while an iterate_dir() callback
is still using it, resulting in a stack use-after-free.
Add a per-file mutex and hold it while accessing the shared directory
enumeration state. The lock covers scan restart, dot entry state,
readdir_data setup and iteration, and response construction. This prevents
another request from replacing readdir_data.private before the current
request has finished using it and also serializes the shared file position.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 5.15, < 6.1.178 | 6.1.178 |
| linux/linux_kernel | ≥ 6.2, < 6.6.145 | 6.6.145 |
| linux/linux_kernel | ≥ 6.7, < 6.12.96 | 6.12.96 |
| linux/linux_kernel | ≥ 6.13, < 6.18.39 | 6.18.39 |
| linux/linux_kernel | ≥ 6.19, < 7.1.4 | 7.1.4 |