CVE-2026-99035
Beschrijving NL
In de Linux kernel is de volgende kwetsbaarheid verholpen:
mmc: mtk-sd: Annuleer aanvraag time-out werk bij verwijderen
De chauffeur wacht op req_timeout terwijl een aanvraag actief is. msdc_request_done() gebruikt cancel_delayed_work(), dat niet wacht op
een time-out callback die al is gestart. De time-out callback roept mmc_request_done() aan, waardoor het verzoek wordt gewekt
ober, en blijft dan host->dev_comp gebruiken en controleer de SDIO IRQ. Tijdens het ontkoppelen kan msdc_drv_remove() terugkeren en kan de beheerde mmc_host
worden vrijgegeven voordat de callback is voltooid. KASAN meldde gebruik na vrijgave in msdc_request_done() en
msdc_recheck_sdio_irq() in elk van de drie ontkoppelingstests. Dezelfde tests
voltooid zonder kerneldiagnose na deze wijziging. Roep cancel_delayed_work_sync() aan nadat mmc_remove_host() is gestopt.
verzoeken en voordat de driver de hostbronnen vrijgeeft.
Origineel (Engels) tonen
In the Linux kernel, the following vulnerability has been resolved:
mmc: mtk-sd: Cancel request timeout work on remove
The driver queues req_timeout while a request is active.
msdc_request_done() uses cancel_delayed_work(), which does not wait for
a timeout callback that has already started.
The timeout callback calls mmc_request_done(), which wakes the request
waiter, and then continues to use host->dev_comp and check the SDIO IRQ.
During unbind, msdc_drv_remove() can return and the managed mmc_host can
be freed before the callback finishes.
KASAN reported use-after-free accesses in msdc_request_done() and
msdc_recheck_sdio_irq() in each of three unbind tests. The same tests
completed without a kernel diagnostic after this change.
Call cancel_delayed_work_sync() after mmc_remove_host() has stopped new
requests and before the driver releases the host resources.