CVE-2025-68781
Description
In the Linux kernel, the following vulnerability has been resolved:
usb: phy: fsl-usb: Fix use-after-free in delayed work during device removal
The delayed work item otg_event is initialized in fsl_otg_conf() and scheduled under two conditions: 1. When a host controller binds to the OTG controller. 2. When the USB ID pin state changes (cable insertion/removal).
A race condition occurs when the device is removed via fsl_otg_remove(): the fsl_otg instance may be freed while the delayed work is still pending or executing. This leads to use-after-free when the work function fsl_otg_event() accesses the already freed memory.
The problematic scenario:
(detach thread) | (delayed work) fsl_otg_remove() | kfree(fsl_otg_dev) //FREE| fsl_otg_event() | og = container_of(...) //USE | og-> //USE
Fix this by calling disable_delayed_work_sync() in fsl_otg_remove() before deallocating the fsl_otg structure. This ensures the delayed work is properly canceled and completes execution prior to memory deallocation.
This bug was identified through static analysis.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
A use-after-free in the Linux kernel's Freescale USB OTG driver occurs when a delayed work item is not cancelled before device removal, potentially allowing memory corruption.
Vulnerability
CVE-2025-68781 is a use-after-free vulnerability in the Linux kernel in the Linux kernel's Freescale USB OTG driver (drivers/usb/phy/fsl-usb.c). The delayed work item otg_event is initialized in fsl_otg_conf() and scheduled when a host controller binds to the OTG controller or when the USB ID pin state changes (cable insertion/removal). The root cause is a race condition during device removal: the fsl_otg_remove() function frees the fsl_otg structure without first ensuring that any pending or executing delayed work has completed. This allows the work function fsl_otg_event() to access freed memory, leading to a use-after-free condition [1][2].
Exploitation
An attacker would need to trigger the removal of the USB OTG device while a delayed work item is still pending or executing. This could be achieved through physical removal of the device or through a system-level event that causes the driver to be unbound. No special privileges are required beyond the ability to cause device removal, which may be possible from user space in some configurations. The vulnerability was identified through static analysis, and no active exploitation has been reported [1][2].
Impact
If successfully exploited, the use-after-free could lead to memory corruption, potentially allowing an attacker to crash the system (denial of service) or, in more severe cases, execute arbitrary code with kernel privileges. The impact is limited to systems using the Freescale USB OTG driver, which is commonly found in embedded systems and some Freescale/NXP i.MX platforms [1][2].
Mitigation
The fix is to call disable_delayed_work_sync() in fsl_otg_remove() before deallocating the fsl_otg structure, ensuring the delayed work is properly canceled and completes execution prior to memory deallocation. The patch has been applied to the Linux kernel stable branches [1][2]. Users should update to a kernel version containing the fix or apply the patch manually.
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
1Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
5- git.kernel.org/stable/c/2e7c47e2eb3cfeadf78a1ccbac8492c60d508f23nvd
- git.kernel.org/stable/c/319f7a85b3c4e34ac2fe083eb146fe129a556317nvd
- git.kernel.org/stable/c/41ca62e3e21e48c2903b3b45e232cf4f2ff7434fnvd
- git.kernel.org/stable/c/4476c73bbbb09b13a962176fca934b32d3954a2envd
- git.kernel.org/stable/c/69f9a0701abc3d1f8225074c56c27e6c16a37222nvd
News mentions
0No linked articles in our index yet.