data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-89441 in the interactive tracker

CVE-2026-89441

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

7.8 EPSS 0.2% AV:L

Published 2026-09-11 (37 days ago) by the Linux kernel CNA. Subsystem drivers/mmc. Debian urgency: not yet assigned.

What to do, per Debian release

Debian's own status for CVE-2026-89441 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormvulnerable6.1.190-1No fix published anywhere yet, neither in Debian nor upstream for the series bookworm tracks. Watch the Debian tracker page for this CVE. Advisories for bookworm have historically landed a median of 23 days after publication.
Debian 13trixiefixedDSA-6568-1 · 2026-10-16 · text6.12.113-1Update the kernel and reboot. DSA-6568-1 shipped the fix on 2026-10-16, in 6.12.113-1. A running kernel keeps the old code until the machine restarts.
Debian 14forkyfixed7.2.6-1Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.2.6-1Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

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.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

drivers/mmc/host/via-sdmmc.c

What this is
MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEMMAINTAINERS section matched on drivers/mmc/ · linux-mmc@vger.kernel.org · Maintained
Kernel module
via_sdmmc

Check it on the machine

grep -w CONFIG_MMC_VIA_SDMMC /boot/config-$(uname -r)

Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.

lsmod | grep -w via_sdmmc

Prints a line if that module is loaded right now, and nothing if it is not. One that is not loaded can still be loaded later by anything that needs it.

Show whether Debian builds this, per release

Debian builds this, but not on every flavour. At least one release below builds the code on some of its kernel flavours and not on others, so the answer depends on the architecture and flavour installed.

  • bookwormMnot built on amd64/cloud-amd64, arm64/cloud-arm64
  • trixieMnot built on amd64/cloud-amd64, arm64/cloud-arm64, armel/rpi, s390x/s390x
  • forky, sidMnot built on amd64/cloud-amd64, arm64/cloud-arm64, loong64/loong64, s390x/s390x
M
a module where it is built at all; some flavours do not build it
Build switch
CONFIG_MMC_VIA_SDMMC

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages

Signals

Published
2026-09-11 (37 days ago)source
CVSS
7.8 high
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hsource recompute it
Attack vector
local (AV:L)source
EPSS
0.18%, higher than 6.6% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
not yet assignedsource
Subsystem
drivers/mmc

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
2.6.316.12.1120a3c70191868
2.6.316.18.50f7ff3027ef00
2.6.317.2.4eaca730c6f5e
2.6.317.357e5d877f898

Debian advisories

AdvisoryDateShipped toDebian
DSA-6568-12026-10-16trixie 6.12.113-1tracker

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:LAttack vector, local
The UAF is reached from via_sd_remove() on the VIA VT9530 PCI SD/MMC host when unbind, rmmod, or PCI hot-remove leaves carddet_work pending; no network, Bluetooth, or USB hotplug path enters this teardown.
AC:LAttack complexity, low
CIR IRQ queues carddet_work and via_sdc_card_detect() sleeps in via_reset_pcictrl while the attacker retries PCI unbind/rebind, so both sides of the missing cancel_work_sync race are attacker-controlled and retryable; such UAFs score AC:L.
PR:LPrivileges required, low
Per CNA driver-removal UAF precedent, including sibling CVE-2026-89440 on this same via-sdmmc driver, an unprivileged local user on a machine with this PCI reader can spray the freed host while teardown proceeds; init-namespace root is not required.
UI:NUser interaction, none
No victim action such as mounting media or opening a file is required; the attacker queues carddet_work (or uses in-flight CIR work) and coordinates with driver removal themselves.
S:UScope, unchanged
The use-after-free corrupts the host kernel's via_crdr_mmc_host/mmc_host heap object within the same security authority; it is not a VM escape, IOMMU/DMA isolation bypass, or sandbox breakout.
C:HConfidentiality impact, high
via_sdc_card_detect() recovers the freed via_crdr_mmc_host via container_of() and dereferences its MMIO bases, lock, and mrq; this kernel heap UAF enables arbitrary read via slab reuse.
I:HIntegrity impact, high
The dangling worker performs MMIO writes (DMA soft-reset, via_reset_pcictrl), may queue finish_bh_work, and can re-enable PCIINTCTRL after free_irq, yielding heap-spray write and control-flow hijack primitives.
A:HAvailability impact, high
Use-after-free of sdhost after iounmap and devm mmc_free_host causes a kernel oops or panic even when not fully exploited, so availability impact is High.