{"id":"CVE-2024-56621","state":"PUBLISHED","title":"scsi: ufs: core: Cancel RTC work during ufshcd_remove()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: ufs: core: Cancel RTC work during ufshcd_remove()\n\nCurrently, RTC work is only cancelled during __ufshcd_wl_suspend(). When\nufshcd is removed in ufshcd_remove(), RTC work is not cancelled. Due to\nthis, any further trigger of the RTC work after ufshcd_remove() would\nresult in a NULL pointer dereference as below:\n\nUnable to handle kernel NULL pointer dereference at virtual address 00000000000002a4\nWorkqueue: events ufshcd_rtc_work\nCall trace:\n _raw_spin_lock_irqsave+0x34/0x8c\n pm_runtime_get_if_active+0x24/0xb4\n ufshcd_rtc_work+0x124/0x19c\n process_scheduled_works+0x18c/0x2d8\n worker_thread+0x144/0x280\n kthread+0x11c/0x128\n ret_from_fork+0x10/0x20\n\nSince RTC work accesses the ufshcd internal structures, it should be cancelled\nwhen ufshcd is removed. So do that in ufshcd_remove(), as per the order in\nufshcd_init().","publishedAt":"2024-12-27T14:51:24.948Z","updatedAt":"2026-05-11T20:56:00.452Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"06701a545e9a3c4e007cff6872a074bf97c40619","status":"affected","lessThan":"57479e37d3f69efee2f0678568274db773284bc8","versionType":"git"},{"version":"6bf999e0eb41850d5c857102535d5c53b2ede224","status":"affected","lessThan":"2e7a3bb0331efb292e0fb022c36bc592137f0520","versionType":"git"},{"version":"6bf999e0eb41850d5c857102535d5c53b2ede224","status":"affected","lessThan":"1695c4361d35b7bdadd7b34f99c9c07741e181e5","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/ufs/core/ufshcd.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.8","versionType":"semver"},{"version":"6.12.5","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/ufs/core/ufshcd.c"]}],"references":["https://git.kernel.org/stable/c/57479e37d3f69efee2f0678568274db773284bc8","https://git.kernel.org/stable/c/2e7a3bb0331efb292e0fb022c36bc592137f0520","https://git.kernel.org/stable/c/1695c4361d35b7bdadd7b34f99c9c07741e181e5"],"weaknesses":[],"ingestedAt":"2026-10-29T20:08:12.933Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/56xxx/CVE-2024-56621.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-56621","state":"PUBLISHED","datePublished":"2024-12-27T14:51:24.948Z","dateUpdated":"2026-05-11T20:56:00.452Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-12-27T14:03:06.016Z"},"containers":{"cna":{"title":"scsi: ufs: core: Cancel RTC work during ufshcd_remove()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: ufs: core: Cancel RTC work during ufshcd_remove()\n\nCurrently, RTC work is only cancelled during __ufshcd_wl_suspend(). When\nufshcd is removed in ufshcd_remove(), RTC work is not cancelled. Due to\nthis, any further trigger of the RTC work after ufshcd_remove() would\nresult in a NULL pointer dereference as below:\n\nUnable to handle kernel NULL pointer dereference at virtual address 00000000000002a4\nWorkqueue: events ufshcd_rtc_work\nCall trace:\n _raw_spin_lock_irqsave+0x34/0x8c\n pm_runtime_get_if_active+0x24/0xb4\n ufshcd_rtc_work+0x124/0x19c\n process_scheduled_works+0x18c/0x2d8\n worker_thread+0x144/0x280\n kthread+0x11c/0x128\n ret_from_fork+0x10/0x20\n\nSince RTC work accesses the ufshcd internal structures, it should be cancelled\nwhen ufshcd is removed. So do that in ufshcd_remove(), as per the order in\nufshcd_init()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"06701a545e9a3c4e007cff6872a074bf97c40619","status":"affected","lessThan":"57479e37d3f69efee2f0678568274db773284bc8","versionType":"git"},{"version":"6bf999e0eb41850d5c857102535d5c53b2ede224","status":"affected","lessThan":"2e7a3bb0331efb292e0fb022c36bc592137f0520","versionType":"git"},{"version":"6bf999e0eb41850d5c857102535d5c53b2ede224","status":"affected","lessThan":"1695c4361d35b7bdadd7b34f99c9c07741e181e5","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/ufs/core/ufshcd.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.8","versionType":"semver"},{"version":"6.12.5","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/ufs/core/ufshcd.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/57479e37d3f69efee2f0678568274db773284bc8"},{"url":"https://git.kernel.org/stable/c/2e7a3bb0331efb292e0fb022c36bc592137f0520"},{"url":"https://git.kernel.org/stable/c/1695c4361d35b7bdadd7b34f99c9c07741e181e5"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T20:56:00.452Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.8","versionEndExcluding":"6.12.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.8","versionEndExcluding":"6.13"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}