CVE-2026-89441

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

Published Sep 11, 2026 CVSS 3.1 · 7.8 High EPSS < 1% KEV · Not listed
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.

Analysis

AI-generated

Technical impact

A flaw in the Linux kernel’s via‑sdmmc driver causes pending card‑detect work to be left queued after a device is removed. The queued work continues to run even though the host structure has already been freed, causing the driver to dereference a freed MMIO base. This kernel‑space use‑after‑free can corrupt memory or redirect execution, potentially allowing local privilege escalation or a denial‑of‑service crash. The vulnerability is very likely triggered by local or physical actions such as a user or attacker removing and reinserting an SD/MMC card during system operation. The CVE documentation specifies that the weakness is of type CWE‑825.

Affected Systems

The flaw affects any system running a Linux kernel that includes the via‑sdmmc driver prior to the fix introduced by commit 57e5d877f898d5e5c9d672a77bb6bdd24f0d9bf5 and its subsequent commits. All distributions, embedded systems, and appliances that ship the default kernel tree with this driver are vulnerable. Devices that support SD/MMC via a PCI controller experience the risk whenever a card is removed or reinserted while the system is running.

Risk and Exploitability

The CVSS score of 7.8 indicates a high‑severity local vulnerability. The EPSS score is below 1%, implying a very low probability of exploitation in the wild. The vulnerability is not listed in CISA KEV. Attackers need local or physical access to trigger the flaw by removing and reinserting a card or by executing privileged code that calls via_sd_remove(). If exploited, the attacker could corrupt kernel memory, crash the system, or gain elevated privileges.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply a kernel update that includes the via‑sdmmc patch from commit 57e5d877f898d5e5c9d672a77bb6bdd24f0d9bf5.
  • If the system does not require SD/MMC support, disable or unload the via_sdcmmc driver before performing any hot removal operations.
  • Avoid removing or reinserting SD/MMC cards during normal operation; schedule card removals during maintenance windows and reboot the system to ensure any pending kernel work is cleared.

Generated by OpenCVE AI on September 21, 2026 at 02:10 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6568-1 linux security update
Ubuntu USN Ubuntu USN USN-9002-1 Linux kernel (NVIDIA Tegra) vulnerabilities
Ubuntu USN Ubuntu USN USN-9019-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9020-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9022-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9023-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9024-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9025-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9026-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9039-1 Linux kernel (Azure CVM) vulnerabilities
Ubuntu USN Ubuntu USN USN-9040-1 Linux kernel (Low Latency NVIDIA) vulnerabilities
Ubuntu USN Ubuntu USN USN-9066-1 Linux kernel (HWE) vulnerabilities
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

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'}

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

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
Weaknesses
  • CWE-825

    Expired Pointer Dereference

Sources

Status
PUBLISHED
Assigner
Linux
Published
Updated
Oct 30, 2026, 12:31 PM
Reserved
Sep 11, 2026, 7:38 PM
Status
Received
Published
Sep 11, 2026, 8:19 PM
Modified
Oct 30, 2026, 1:20 PM
Severity
Moderate
Public date
Sep 11, 2026, 7:43 PM