ksmbd: fix FSCTL permission bypass by adding a permission check for FSCTL_SET_SPARSE
cve-program · CVE-2026-52944
PublishedIn the Linux kernel, the following vulnerability has been resolved: ksmbd: fix FSCTL permission bypass by adding a permission check for FSCTL_SET_SPARSE FSCTL_SET_SPARSE in fsctl_set_sparse() modifies the file's sparse attribute and saves it through xattr without any permission checks. This exposes two issues: 1) A client on a read-only share can change the sparse attribute on files it opened, even though the share is read-only. Other FSCTL write operations already check test_tree_conn_flag(work->tcon, KSMBD_TREE_CONN_FLAG_WRITABLE), but FSCTL_SET_SPARSE does not. 2) Even on writable shares, clients without FILE_WRITE_DATA or FILE_WRITE_ATTRIBUTES access should not modify the sparse attribute. Similar handle-level checks exist in other functions but are missing here. Add both share-level writable check and per-handle access check. Use goto out on error to avoid leaking file references.
Read the publisher's advisoryAffected versions, risk and source history
Related advisories and sources
Publishers link these advisories through the identifiers shown below. A shared identifier or date alone does not tell you whether your software is affected or whether the advisories describe the same cause.
CVE-2026-52944 · CVE overview and exploitation status
cve-program · CVE-2026-52944
- https://git.kernel.org/stable/c/ef664475c1bf1a27d45dae6848ca9c9c4d86853f
- https://git.kernel.org/stable/c/3a9a0a1c38ef90788f5d7c4b29903c8b220f744a
- https://git.kernel.org/stable/c/3127a884525dc8ca4def73254bfcd3ccef0bf812
- https://git.kernel.org/stable/c/c5ab11263e3c89aa7989afc5374ef7743e092fd0
- https://git.kernel.org/stable/c/de9eb0b44fa9123170e6245b49638e0e453c10f8
- https://git.kernel.org/stable/c/aef151bcfa494bfe983669de2726734b534adb73
- https://git.kernel.org/stable/c/cc57232cae23c0df91b4a59d0f519141ce9b5b02
Related changes
Linked by CVE identifierNo related changes are available here.