What’s Vulnerable › Vulnerabilities
CVE-2026-64328: usb: gadget: f_fs: Fix DMA fence leak
- Severity: medium (CVSS 5.5 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.2% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2026-07-25 · updated 2026-09-04
- Weakness: CWE-401
Description
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_fs: Fix DMA fence leak In ffs_dmabuf_transfer(), a ffs_dma_fence object is kmalloc'd, with the underlying dma_fence later initialized by dma_fence_init(), which sets its kref counter to 1. Then, dma_resv_add_fence() gets a second reference, and a pointer to the ffs_dma_fence is passed as the usb_request's "context" field. The dma-resv mechanism will manage the second reference, but the first reference is never properly released; the ffs_dmabuf_cleanup() function decreases the reference count, but only to balance with the reference grab in ffs_dmabuf_signal_done(). The code will then slowly leak memory as more ffs_dma_fence objects are created without being ever freed. Address this issue by transferring ownership of the fence to the DMA reservation object, by calling dma_fence_put() right after dma_resv_add_fence(). The ffs_dma_fence then gets properly discarded after being signalled.
Affected products
- Linux kernel: from 6.9 before 6.12.96; from 6.13 before 6.18.39; from 6.19 before 7.1.4; 7.2-rc1, 7.2-rc2 — fixed in 6.12.96, 6.18.39, 7.1.4
How to fix
Upgrade to a fixed version: Linux kernel 6.12.96, 6.18.39, 7.1.4. Check the vendor advisory for mitigations.
References
- https://git.kernel.org/stable/c/0cae3d6109427c455bad0a18dfb3e2a91657e38a
- https://git.kernel.org/stable/c/b7475b2dce5e121e687280ba5732ccefe77ffd2f
- https://git.kernel.org/stable/c/baa6b6068a3f2bf2ed525a1cb37975905dadc658
- https://git.kernel.org/stable/c/e086c16962a1b0142e2675610e9c06fcfcd4c3a8
Get alerted when CVE-2026-64328 or the next vulnerability affects your stack