CVE-2026-99035
NoneCVSS
—
EPSS
0.2%
Published
Oct 23, 2026
CISA due date
—
Cloudanix analysis
A bug in a Linux storage driver could let a local attacker crash the system or gain elevated access by removing the driver while certain operations are still running.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
Use-after-free in the MediaTek SD/MMC driver (mtk-sd) caused by calling cancel_delayed_work() instead of cancel_delayed_work_sync() on a request timeout work item during driver removal, allowing the callback to access freed mmc_host structures after mmc_remove_host().
Why it matters to the business
Kernel instability or crashes on systems using MediaTek MMC/SD controllers during device removal or driver unload, with potential for local privilege escalation in high-privilege contexts; low immediate risk given recent publication and absence from known exploitation lists.
How an attack unfolds
An attacker triggers active MMC/SDIO requests followed by rapid driver unbind/remove operations; the timeout work callback executes after resources are freed, dereferencing invalid pointers in msdc_request_done() and msdc_recheck_sdio_irq().
How to fix it
Apply the upstream fix that invokes cancel_delayed_work_sync() after mmc_remove_host() and before releasing host resources; rebuild and deploy the patched kernel on affected systems.
How to confirm the fix worked
Reproduce unbind tests under KASAN and confirm absence of use-after-free reports in msdc_request_done() or msdc_recheck_sdio_irq(); verify the call to cancel_delayed_work_sync() is present in the driver source.
Typical attack path
- Establish active MMC request
- Trigger driver unbind or module removal
- Timeout delayed work fires after host free
- Access freed structures via mmc_request_done path
How to detect it
Inspect kernel logs and KASAN output for use-after-free accesses mentioning msdc_request_done or msdc_recheck_sdio_irq during unbind or mmc host removal events.
- msdc_request_done
- msdc_recheck_sdio_irq
- KASAN: use-after-free in msdc_
- cancel_delayed_work vs cancel_delayed_work_sync
What your security team should do
- Prioritize kernel update on systems exposing MediaTek mmc drivers
- Add KASAN-enabled regression tests for driver remove paths
- Monitor kernel logs for related warnings during device hotplug or module unload
The record
In the Linux kernel, the following vulnerability has been resolved: mmc: mtk-sd: Cancel request timeout work on remove The driver queues req_timeout while a request is active. msdc_request_done() uses cancel_delayed_work(), which does not wait for a timeout callback that has already started. The timeout callback calls mmc_request_done(), which wakes the request waiter, and then continues to use host->dev_comp and check the SDIO IRQ. During unbind, msdc_drv_remove() can return and the managed mmc_host can be freed before the callback finishes. KASAN reported use-after-free accesses in msdc_request_done() and msdc_recheck_sdio_irq() in each of three unbind tests. The same tests completed without a kernel diagnostic after this change. Call cancel_delayed_work_sync() after mmc_remove_host() has stopped new requests and before the driver releases the host resources.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|