{"id":"CVE-2026-64259","state":"PUBLISHED","title":"fuse-uring: make a fuse_req on SQE commit only findable after memcpy","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nfuse-uring: make a fuse_req on SQE commit only findable after memcpy\n\nBad userspace might try to trick us and send commit SQEs request\nunique / commit-id of requests that are not even send to\nfuse-server (io_uring_cmd_done() not called) yet.\n\nfuse_uring_commit_fetch() ends the fuse request when the ring entry\nhas a wrong state, but that could have caused a use-after-free\nwith the memcpy operations in fuse_uring_send_in_task().\nIn order to avoid such races the call of fuse_uring_add_to_pq()\nis moved after the copy operations and just before completing\nthe io-uring request - malicious userspace cannot find the request\nanymore until all prepration work in fuse-client/kernel is completed.\n\nThis also moves fuse_uring_add_to_pq() a bit up in the code to\navoid a forward declaration. Also not with a preparation commit,\nto make it easier to back port to older kernels.","publishedAt":"2026-07-25T08:49:10.756Z","updatedAt":"2026-08-17T04:52:12.445Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"c090c8abae4b6b77a1bee116aa6c385456ebef96","status":"affected","lessThan":"e1711479e9068ea31b31353a702a51e639c3d059","versionType":"git"},{"version":"c090c8abae4b6b77a1bee116aa6c385456ebef96","status":"affected","lessThan":"a635f427d57e2012102ae4886b48d8955c59fb86","versionType":"git"},{"version":"c090c8abae4b6b77a1bee116aa6c385456ebef96","status":"affected","lessThan":"1efd3d474fc0ba74dfd984249bca78807d739812","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/fuse/dev_uring.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.14","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/fuse/dev_uring.c"]}],"references":["https://git.kernel.org/stable/c/e1711479e9068ea31b31353a702a51e639c3d059","https://git.kernel.org/stable/c/a635f427d57e2012102ae4886b48d8955c59fb86","https://git.kernel.org/stable/c/1efd3d474fc0ba74dfd984249bca78807d739812"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64259.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64259","state":"PUBLISHED","datePublished":"2026-07-25T08:49:10.756Z","dateUpdated":"2026-08-17T04:52:12.445Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T15:36:31.773Z"},"containers":{"cna":{"title":"fuse-uring: make a fuse_req on SQE commit only findable after memcpy","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nfuse-uring: make a fuse_req on SQE commit only findable after memcpy\n\nBad userspace might try to trick us and send commit SQEs request\nunique / commit-id of requests that are not even send to\nfuse-server (io_uring_cmd_done() not called) yet.\n\nfuse_uring_commit_fetch() ends the fuse request when the ring entry\nhas a wrong state, but that could have caused a use-after-free\nwith the memcpy operations in fuse_uring_send_in_task().\nIn order to avoid such races the call of fuse_uring_add_to_pq()\nis moved after the copy operations and just before completing\nthe io-uring request - malicious userspace cannot find the request\nanymore until all prepration work in fuse-client/kernel is completed.\n\nThis also moves fuse_uring_add_to_pq() a bit up in the code to\navoid a forward declaration. Also not with a preparation commit,\nto make it easier to back port to older kernels."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"c090c8abae4b6b77a1bee116aa6c385456ebef96","status":"affected","lessThan":"e1711479e9068ea31b31353a702a51e639c3d059","versionType":"git"},{"version":"c090c8abae4b6b77a1bee116aa6c385456ebef96","status":"affected","lessThan":"a635f427d57e2012102ae4886b48d8955c59fb86","versionType":"git"},{"version":"c090c8abae4b6b77a1bee116aa6c385456ebef96","status":"affected","lessThan":"1efd3d474fc0ba74dfd984249bca78807d739812","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/fuse/dev_uring.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.14","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/fuse/dev_uring.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/e1711479e9068ea31b31353a702a51e639c3d059"},{"url":"https://git.kernel.org/stable/c/a635f427d57e2012102ae4886b48d8955c59fb86"},{"url":"https://git.kernel.org/stable/c/1efd3d474fc0ba74dfd984249bca78807d739812"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - Triggering requires local filesystem operations and IORING_OP_URING_CMD submissions on an associated /dev/fuse descriptor. Network peers cannot directly reach this commit path.\nAC:L - The attacker controls request generation, predictable sequential commit IDs, concurrent commit submission, and deferred io_uring task-work execution. Both sides of the race are attacker-controlled.\nPR:L - An ordinary user can create and operate a FUSE mount through fusermount or CAP_SYS_ADMIN in a user namespace; FUSE permits user-namespace mounts and this path has no init-namespace capability check.\nUI:N - The attacker can operate both the FUSE daemon and a client thread that generates requests, requiring no victim action.\nS:U - Exploitation compromises the host kernel within the same security authority and does not cross a VM, IOMMU, or comparable boundary.\nC:H - The freed request's argument pointers and copy sources are dereferenced while copying into attacker-controlled ring memory. Heap reclamation can therefore expose sensitive kernel memory.\nI:H - The use-after-free performs writes to reclaimed request memory through embedded spinlocks and request flags, providing exploitable heap corruption that may enable arbitrary writes or kernel code execution.\nA:H - The dangling request can cause invalid dereferences, corrupted request state, double completion, hangs, or a kernel panic."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T04:52:12.445Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14","versionEndExcluding":"6.18.39"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14","versionEndExcluding":"7.1.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}