CVE-2026-89440

mmc: via-sdmmc: stop card-detect handling on probe failure

State
Published
Severity
7.8 High
Published
Sep 11, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

mmc: via-sdmmc: stop card-detect handling on probe failure

request_irq() registers the SD card-detect interrupt and the probe enables it before mmc_add_host() runs. If mmc_add_host() fails, the error path only unmaps the registers and returns: the interrupt stays registered, so the handler keeps running against the host once it is freed. via_sdc_isr() dereferences sdhost and its MMIO base and schedules carddet_work, which via_sdc_card_detect() also runs against freed memory through its container_of() dereference.

Add a probe-error path that disables and frees the interrupt and cancels carddet_work before unmapping. carddet_work can re-enable the device interrupt via via_reset_pcictrl(), which restores PCIINTCTRL, so mask it again after cancelling the work.

This issue was found by an in-house static analysis tool and confirmed by manual code review.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 63400da6cd37a9793c19bb6aed7131b58b975a04 to before 5bb5327b92aae17e91c7228953c350a6ee3c94e8Affected
  • 0959cc1685eb19774300d43ef25e318b457b156b to before d045596706d1b25d38af4a79980b017639fea9d1Affected
  • ba91b413983a9235792523c6b9f7ba2586c4d75d to before 806409f12fdb14c9e4c56a64494c9b75f356cd49Affected
  • e4e46fb61e3bb4628170810d3f2b996b709b90d9 to before dde5b9c91e9fc64e54a2f186d3ae95868b4dbb02Affected
  • e4e46fb61e3bb4628170810d3f2b996b709b90d9 to before efe7f25dd27e35063477b4b0e7eed3675669fd99Affected
  • e4e46fb61e3bb4628170810d3f2b996b709b90d9 to before 2550f89589caad7402d618d7dffc038582c94b6bAffected
  • e4e46fb61e3bb4628170810d3f2b996b709b90d9 to before c2b8a624911999399cc14822fec3e35032b3cee4Affected
  • e4e46fb61e3bb4628170810d3f2b996b709b90d9 to before 088eaa92fcebaa6b957ccf9635afdf39643a577dAffected
  • 076bcd2c93e16b05c10564e299d6e5d26a766d00Affected
  • 12b8e81b77c05c658efd9cde3585bbd65ae39b59Affected
  • 95025a8dd0ec015872f6c16473fe04d6264e68caAffected
  • f59ef2a47a228e51322ad76752a55a8917c56e38Affected
  • 0ec94795114edc7e24ec71849dce42bfa61dafa3Affected
  • 5.10.163 to before 5.10.270Affected
  • 5.15.86 to before 5.15.221Affected
  • 6.1.2 to before 6.1.188Affected
  • 4.9.337 to before 4.10Affected
  • 4.14.303 to before 4.15Affected
  • 4.19.270 to before 4.20Affected
  • 5.4.229 to before 5.5Affected
  • 6.0.16 to before 6.1Affected
LinuxLinux
  • 6.2Affected
  • before 6.2Not affected
  • 5.10.270 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.109 through 6.12.*Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.