VYPR
Unrated severityNVD Advisory· Published Jan 13, 2026· Updated Apr 15, 2026

CVE-2025-68781

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

1

Patches

0

No patches discovered yet.

Vulnerability mechanics

AI mechanics synthesis has not run for this CVE yet.

References

5

News mentions

0

No linked articles in our index yet.