Description
In the Linux kernel, the following vulnerability has been resolved:

mmc: via-sdmmc: cancel card-detect work on remove

Disabling the device interrupt and freeing the IRQ prevents new card-detect
work from being queued, but carddet_work already queued by the handler can
still run after via_sd_remove() returns. via_sdc_card_detect() recovers the
host through container_of() and dereferences its MMIO base; once remove()
returns the host can be freed, so that work would touch freed memory.

Cancel carddet_work after freeing the IRQ and before cancelling
finish_bh_work, which the card-detect handler can also queue. carddet_work
can re-enable the interrupt through via_reset_pcictrl(); mask it again
afterwards.

This issue was found by an in-house static analysis tool and confirmed by
manual code review.
Published: 2026-09-11
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Use After Free potentially allowing local code execution
Action: Immediate Patch
AI Analysis

Impact

In the Linux kernel, the removal routine for devices using the via‑sdmmc driver fails to cancel outstanding card‑detect work before freeing the IRQ and releasing the host structure. As a result, the queued carddet_work may still run after via_sd_remove returns, dereferencing a freed MMIO base pointer. This use‑after‑free allows a local user to tamper with the device (for example, by rapidly inserting and removing an SD card) and potentially trigger arbitrary memory corruption that could lead to code execution or a system crash. The flaw is rooted in improper timing of work cancellation and memory deallocation.

Affected Systems

The defect impacts any Linux kernel build that includes the via‑sdmmc card‑detect code without the applied fix. No specific kernel version range is provided, so all distributions that ship versions before the vulnerability was patched are potentially vulnerable. This applies to generic Linux kernels, including those used in embedded devices, servers, and desktop systems that rely on the MMC subsystem.

Risk and Exploitability

The CVSS score is 4.1, indicating a moderate severity. The EPSS score is < 1% and the vulnerability is not listed in CISA’s KEV catalog, suggesting limited active exploitation. Attackers would need local or physical access to trigger the flaw; a dedicated SD card removal operation could trigger the corrupted work. While exploitation is not guaranteed, the combination of memory corruption and kernel context grants a potential for local privilege escalation or denial of service.

Generated by OpenCVE AI on September 13, 2026 at 03:19 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest kernel update that contains the via‑sdmmc card‑detect cancellation fix.
  • If an immediate kernel upgrade is not possible, avoid removing MMC or SD devices while the system is in use; perform removals during scheduled maintenance windows or after a reboot to ensure no background work remains queued.
  • As a last resort, reboot the system immediately after any SD card removal to clear all pending work and free any associated kernel memory.

Generated by OpenCVE AI on September 13, 2026 at 03:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 13 Sep 2026 06:45:00 +0000

Type Values Removed Values Added
Metrics 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'}

cvssV3_1

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


Sat, 12 Sep 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, 11 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: mmc: via-sdmmc: cancel card-detect work on remove Disabling the device interrupt and freeing the IRQ prevents new card-detect work from being queued, but carddet_work already queued by the handler can still run after via_sd_remove() returns. via_sdc_card_detect() recovers the host through container_of() and dereferences its MMIO base; once remove() returns the host can be freed, so that work would touch freed memory. Cancel carddet_work after freeing the IRQ and before cancelling finish_bh_work, which the card-detect handler can also queue. carddet_work can re-enable the interrupt through via_reset_pcictrl(); mask it again afterwards. This issue was found by an in-house static analysis tool and confirmed by manual code review.
Title mmc: via-sdmmc: cancel card-detect 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 Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-13T06:29:23.396Z

Reserved: 2026-09-11T19:38:34.703Z

Link: CVE-2026-89441

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-11T20:19:24.487

Modified: 2026-09-13T07:17:08.650

Link: CVE-2026-89441

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-11T19:43:10Z

Links: CVE-2026-89441 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-13T03:30:17Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference