Description (CNA)
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.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 before 1426fd79102539bc0ab5c8fced047ad4313b9908; affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 before 2a64dbf9c739ddf7a25a066507597bf89f8f73d2; affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 before 64dac2d486ec1eb18dc00968b16a230b6b75ec24; affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 before a1d5d31cad593ea5e1b637f2f39c9ef6d09d1199; affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 before fd22b039a5a05bc1d6818e9dcd1001fb432a829d; affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 before be6d26bf27499977c746abc163659915082348d8 |
| Linux / Linux | affected 5.15; unaffected 0 before 5.15; unaffected 6.1.178 through 6.1.*; unaffected 6.6.145 through 6.6.*; unaffected 6.12.96 through 6.12.*; unaffected 6.18.39 through 6.18.*; unaffected 7.1.4 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/1426fd79102539bc0ab5c8fced047ad4313b9908
- https://git.kernel.org/stable/c/2a64dbf9c739ddf7a25a066507597bf89f8f73d2
- https://git.kernel.org/stable/c/64dac2d486ec1eb18dc00968b16a230b6b75ec24
- https://git.kernel.org/stable/c/a1d5d31cad593ea5e1b637f2f39c9ef6d09d1199
- https://git.kernel.org/stable/c/fd22b039a5a05bc1d6818e9dcd1001fb432a829d
- https://git.kernel.org/stable/c/be6d26bf27499977c746abc163659915082348d8