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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
f0bf7f61b8405224bc52fc9a3ccd167a68126e00 to < 55d71c70f11d9f92c7d2653774001e98cb509debaffectedf0bf7f61b8405224bc52fc9a3ccd167a68126e00 to < 0a3c70191868fb007c03ff79693ad4e4b3fdcbb8affectedf0bf7f61b8405224bc52fc9a3ccd167a68126e00 to < f7ff3027ef004a331ef911a4886f12bc2e996037affectedf0bf7f61b8405224bc52fc9a3ccd167a68126e00 to < eaca730c6f5e3609df62a0469fb789235a93d276affectedf0bf7f61b8405224bc52fc9a3ccd167a68126e00 to < 57e5d877f898d5e5c9d672a77bb6bdd24f0d9bf5affected
Linux Linux
Default version status: affected
2.6.31affected0 to < 2.6.31unaffected6.6.160 to ≤ 6.6.*unaffected6.12.112 to ≤ 6.12.*unaffected6.18.50 to ≤ 6.18.*unaffected7.2.4 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/55d71c70f11d9f92c7d2653774001e98cb509deb ↗
- https://git.kernel.org/stable/c/0a3c70191868fb007c03ff79693ad4e4b3fdcbb8 ↗
- https://git.kernel.org/stable/c/f7ff3027ef004a331ef911a4886f12bc2e996037 ↗
- https://git.kernel.org/stable/c/eaca730c6f5e3609df62a0469fb789235a93d276 ↗
- https://git.kernel.org/stable/c/57e5d877f898d5e5c9d672a77bb6bdd24f0d9bf5 ↗