Cloudanix VulnDB

CVE-2026-99035

None

CVSS

—

EPSS

0.2%

Published

Oct 23, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

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

  1. Establish active MMC request
  2. Trigger driver unbind or module removal
  3. Timeout delayed work fires after host free
  4. 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