Description
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.
Published: 2026-10-23
Score: 4.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Kernel crash (Denial of Service)
Action: Immediate Patch
AI Analysis

Impact

In the Linux kernel, the mtk-sd MMC driver queues a request‑timeout work item while a request is active. The timeout callback calls msdc_request_done, which wakes the request waiter and continues to reference host->dev_comp and checks the SDIO IRQ. When the driver is unbound, the host can be freed before that callback completes. KASAN reports show use‑after‑free accesses in msdc_request_done and msdc_recheck_sdio_irq. The callback can finish after the host memory is freed, potentially causing a kernel crash or system reboot. This represents a kernel use‑after‑free that can lead to denial of service; it does not provide an obvious remote code execution path.

Affected Systems

Linux kernels that contain the unmodified mtk-sd MMC driver are affected. The problem exists in any kernel build that ships the driver unchanged; no specific version range is documented. Systems that load this driver for MediaTek SDIO devices are potentially impacted.

Risk and Exploitability

EPSS score is < 1% and the CVE is not listed in CISA KEV. The kernel use‑after‑free can result in a crash, indicating a high impact. The likely attack vector is a local privileged user or process that can force the device to be removed or unbound while a request is pending. Because the exploit would trigger a kernel panic rather than code execution, the risk is significant even without a publicly available exploit.

Generated by OpenCVE AI on October 29, 2026 at 14:54 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the patch from the referenced commits, which replaces cancel_delayed_work with cancel_delayed_work_sync in the removal path.
  • If you compile the driver yourself, rebuild it so the cancel_delayed_work_sync change is applied.
  • If an immediate kernel update is not possible, avoid removing or unbinding the MediaTek SDIO device while it may be servicing a request. Rebooting the system when you need to release resources safely helps prevent the timeout callback from running against freed memory.

Generated by OpenCVE AI on October 29, 2026 at 14:54 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 30 Oct 2026 13:00:00 +0000


Thu, 29 Oct 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.1, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 23 Oct 2026 20:15:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Fri, 23 Oct 2026 17:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 23 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
Description 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.
Title mmc: mtk-sd: Cancel request timeout work on remove
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-30T12:41:08.346Z

Reserved: 2026-09-25T10:25:14.387Z

Link: CVE-2026-99035

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-23T13:17:26.700

Modified: 2026-10-30T13:21:40.553

Link: CVE-2026-99035

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-23T00:00:00Z

Links: CVE-2026-99035 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-29T15:00:22Z

Weaknesses