{"id":"CVE-2026-98212","state":"PUBLISHED","title":"mmc: hsq: Fix use-after-free in retry work","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nmmc: hsq: Fix use-after-free in retry work\n\nmmc_hsq_pump_requests() queues retry_work when request_atomic() returns\n-EBUSY; today sdhci-sprd is the only consumer that implements\nrequest_atomic(). The work is embedded in a devm-allocated mmc_hsq, but\nis never cancelled during driver removal. Work still pending at unbind\ncan therefore run after the devm allocation has been released and\ndereference hsq->mmc and hsq->mrq.\n\nUse devm_work_autocancel() to cancel and drain retry_work before the devm\nallocation is released. By the time devres cleanup begins,\nmmc_remove_host() has already stopped the host, so no new requests can\narm the work.\n\nThis issue was found by an in-house static analysis tool.","publishedAt":"2026-10-06T08:44:48.498Z","updatedAt":"2026-10-19T09:15:43.105Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6db96e5810e0a6a345b7d78549de7676ae5b2662","status":"affected","lessThan":"c50d6515bffb148c2c12be6d587ec201dfab4c34","versionType":"git"},{"version":"6db96e5810e0a6a345b7d78549de7676ae5b2662","status":"affected","lessThan":"df2eb59fd9eb33663dc1053f5a4ed851e0aa1f67","versionType":"git"},{"version":"6db96e5810e0a6a345b7d78549de7676ae5b2662","status":"affected","lessThan":"8439bf262ce3267bcfee29d3c61605f1731a2271","versionType":"git"},{"version":"6db96e5810e0a6a345b7d78549de7676ae5b2662","status":"affected","lessThan":"45341b341642c377192c95e4d48e0a859cf85f42","versionType":"git"},{"version":"6db96e5810e0a6a345b7d78549de7676ae5b2662","status":"affected","lessThan":"5d132990475f02cfa1debe03d50b479432864ebd","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/mmc/host/mmc_hsq.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.8","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.112","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.54","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.8","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/mmc/host/mmc_hsq.c"]}],"references":["https://git.kernel.org/stable/c/c50d6515bffb148c2c12be6d587ec201dfab4c34","https://git.kernel.org/stable/c/df2eb59fd9eb33663dc1053f5a4ed851e0aa1f67","https://git.kernel.org/stable/c/8439bf262ce3267bcfee29d3c61605f1731a2271","https://git.kernel.org/stable/c/45341b341642c377192c95e4d48e0a859cf85f42","https://git.kernel.org/stable/c/5d132990475f02cfa1debe03d50b479432864ebd"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:43.249Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/98xxx/CVE-2026-98212.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-98212","state":"PUBLISHED","datePublished":"2026-10-06T08:44:48.498Z","dateUpdated":"2026-10-19T09:15:43.105Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-09-25T10:25:14.325Z"},"containers":{"cna":{"title":"mmc: hsq: Fix use-after-free in retry work","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmmc: hsq: Fix use-after-free in retry work\n\nmmc_hsq_pump_requests() queues retry_work when request_atomic() returns\n-EBUSY; today sdhci-sprd is the only consumer that implements\nrequest_atomic(). The work is embedded in a devm-allocated mmc_hsq, but\nis never cancelled during driver removal. Work still pending at unbind\ncan therefore run after the devm allocation has been released and\ndereference hsq->mmc and hsq->mrq.\n\nUse devm_work_autocancel() to cancel and drain retry_work before the devm\nallocation is released. By the time devres cleanup begins,\nmmc_remove_host() has already stopped the host, so no new requests can\narm the work.\n\nThis issue was found by an in-house static analysis tool."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6db96e5810e0a6a345b7d78549de7676ae5b2662","status":"affected","lessThan":"c50d6515bffb148c2c12be6d587ec201dfab4c34","versionType":"git"},{"version":"6db96e5810e0a6a345b7d78549de7676ae5b2662","status":"affected","lessThan":"df2eb59fd9eb33663dc1053f5a4ed851e0aa1f67","versionType":"git"},{"version":"6db96e5810e0a6a345b7d78549de7676ae5b2662","status":"affected","lessThan":"8439bf262ce3267bcfee29d3c61605f1731a2271","versionType":"git"},{"version":"6db96e5810e0a6a345b7d78549de7676ae5b2662","status":"affected","lessThan":"45341b341642c377192c95e4d48e0a859cf85f42","versionType":"git"},{"version":"6db96e5810e0a6a345b7d78549de7676ae5b2662","status":"affected","lessThan":"5d132990475f02cfa1debe03d50b479432864ebd","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/mmc/host/mmc_hsq.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.8","versionType":"semver"},{"version":"6.6.158","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.112","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.54","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.8","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/mmc/host/mmc_hsq.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/c50d6515bffb148c2c12be6d587ec201dfab4c34"},{"url":"https://git.kernel.org/stable/c/df2eb59fd9eb33663dc1053f5a4ed851e0aa1f67"},{"url":"https://git.kernel.org/stable/c/8439bf262ce3267bcfee29d3c61605f1731a2271"},{"url":"https://git.kernel.org/stable/c/45341b341642c377192c95e4d48e0a859cf85f42"},{"url":"https://git.kernel.org/stable/c/5d132990475f02cfa1debe03d50b479432864ebd"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T09:15:43.105Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8","versionEndExcluding":"6.6.158"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8","versionEndExcluding":"6.12.112"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8","versionEndExcluding":"6.18.54"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8","versionEndExcluding":"7.2.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.8","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}