CVE-2025-40314
Description
In the Linux kernel, the following vulnerability has been resolved:
usb: cdns3: gadget: Use-after-free during failed initialization and exit of cdnsp gadget
In the __cdnsp_gadget_init() and cdnsp_gadget_exit() functions, the gadget structure (pdev->gadget) was freed before its endpoints. The endpoints are linked via the ep_list in the gadget structure. Freeing the gadget first leaves dangling pointers in the endpoint list. When the endpoints are subsequently freed, this results in a use-after-free.
Fix: By separating the usb_del_gadget_udc() operation into distinct "del" and "put" steps, cdnsp_gadget_free_endpoints() can be executed prior to the final release of the gadget structure with usb_put_gadget().
A patch similar to bb9c74a5bd14("usb: dwc3: gadget: Free gadget structure only after freeing endpoints").
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Use-after-free in Linux kernel's cdns3 USB gadget driver when gadget structure is freed before its endpoints during failed init or exit.
Vulnerability
Description
A use-after-free vulnerability exists in the Linux kernel's cdns3 USB gadget driver, specifically in the __cdnsp_gadget_init() and cdnsp_gadget_exit() functions. The root cause is that the gadget structure (pdev->gadget) is freed before its associated endpoints. The endpoints are linked via the ep_list in the gadget structure, so freeing the gadget leaves dangling pointers in the endpoint list, leading to a use-after-free when the endpoints are subsequently freed [1].
Attack
Surface and Exploitation
The vulnerability occurs during failed initialization or normal exit of the cdns3 gadget. An attacker would need local access to the system and the ability to trigger the driver's initialization or removal path. Since this is a kernel memory corruption issue, exploitation could potentially lead to privilege escalation or denial of service. However, the specific prerequisites and attack vectors are not further detailed in the available sources, and no active exploitation in the wild has been reported.
Impact
An attacker successfully exploiting this use-after-free could corrupt kernel memory, potentially leading to system crash (denial of service) or, in more sophisticated scenarios, privilege escalation. The vulnerability is considered a high-severity memory safety issue due to the use-after-free nature.
Mitigation
The fix separates the usb_del_gadget_udc() operation into distinct "del" and "put" steps, ensuring that cdnsp_gadget_free_endpoints() is executed before the final release of the gadget structure via usb_put_gadget(). The patch is similar to a previous fix for dwc3 (bb9c74a5bd14) and has been merged into the stable kernel tree [1][2]. Users should apply the latest kernel update to address this vulnerability.
AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
2Patches
60cf9a50af91f37158ce6ba96ea37884097a09c52f01429c3fdf573c5176287c5ff5615dcVulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
6- git.kernel.org/stable/c/0cf9a50af91fbdac3849f8d950e883a3eaa3eceanvd
- git.kernel.org/stable/c/37158ce6ba964b62d1e3eebd11f03c6900a52dd1nvd
- git.kernel.org/stable/c/87c5ff5615dc0a37167e8faf3adeeddc6f1344a3nvd
- git.kernel.org/stable/c/9c52f01429c377a2d32cafc977465f37b5384f77nvd
- git.kernel.org/stable/c/ea37884097a0931abb8e11e40eacfb25e9fdb5e9nvd
- git.kernel.org/stable/c/fdf573c517627a96f5040f988e9b21267806be5cnvd
News mentions
0No linked articles in our index yet.