CVE-2026-98762
NoneCVSS
—
EPSS
0.2%
Published
Oct 18, 2026
CISA due date
—
Cloudanix analysis
A timing flaw in certain USB hardware support code can let the system use memory after it has been freed, which may crash the machine or allow an attacker with local access to gain elevated privileges.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free in the dwc2 USB host controller driver: dwc2_wakeup_detected() can access or re-arm a timer after dwc2_hcd_free() has released the associated HCD state because timer deletion occurs too late and lacks synchronization against pending callbacks.
Why it matters to the business
Linux systems using dwc2-based USB hardware may experience kernel crashes, memory corruption, or potential local privilege escalation, resulting in service outages or security exposure until kernels are updated.
How an attack unfolds
An attacker with local access triggers HCD removal or initialization failure paths while the wakeup timer remains active; when the timer later fires, its callback dereferences already-freed host state, enabling memory corruption that can be leveraged for code execution.
How to fix it
Update the Linux kernel to a version containing the fix that calls timer shutdown in dwc2_hcd_release() before any host state is freed; rebuild and reboot affected systems.
How to confirm the fix worked
Confirm the presence of the timer shutdown change in dwc2_hcd_release(), verify no timer callbacks can run after state release via code inspection or kernel debugging, and test HCD load/unload paths under load.
Typical attack path
- Obtain local access on a system using the dwc2 driver
- Trigger HCD initialization error or device removal to invoke dwc2_hcd_release()
- Arrange for the wakeup timer to remain pending or re-armed
- Allow the timer callback to execute against freed memory
- Exploit resulting UAF for privilege escalation or denial of service
How to detect it
Review kernel logs and crash dumps for dwc2_wakeup_detected references, use-after-free warnings, or panics during USB host controller removal; correlate with device hot-plug or driver unload events.
- dwc2_wakeup_detected
- dwc2_hcd_release
- dwc2_hcd_free
- timer_delete
- USB dwc2 use-after-free
What your security team should do
- Apply the upstream dwc2 timer fix to all production kernels within the next patch cycle
- Monitor kernel update channels for dwc2-related commits and schedule reboots
- Restrict unprivileged local access on systems exposing dwc2 USB controllers until patched
- Include dwc2 UAF patterns in crash-dump and kernel log review procedures
The record
In the Linux kernel, the following vulnerability has been resolved: USB: dwc2: shut down wakeup timer before freeing HCD state dwc2_wakeup_detected() accesses the DWC2 host state and can rearm the wakeup timer. dwc2_hcd_free() currently deletes the timer only after freeing host-owned state, and timer_delete() does not synchronize a callback or prevent it from being queued again. Stop and shut down the timer in dwc2_hcd_release(), before the HCD resources are freed. This covers both the HCD initialization error path and normal HCD removal.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|