{"id":"CVE-2025-38620","state":"PUBLISHED","title":"zloop: fix KASAN use-after-free of tag set","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nzloop: fix KASAN use-after-free of tag set\n\nWhen a zoned loop device, or zloop device, is removed, KASAN enabled\nkernel reports \"BUG KASAN use-after-free\" in blk_mq_free_tag_set(). The\nBUG happens because zloop_ctl_remove() calls put_disk(), which invokes\nzloop_free_disk(). The zloop_free_disk() frees the memory allocated for\nthe zlo pointer. However, after the memory is freed, zloop_ctl_remove()\ncalls blk_mq_free_tag_set(&zlo->tag_set), which accesses the freed zlo.\nHence the KASAN use-after-free.\n\n zloop_ctl_remove()\n  put_disk(zlo->disk)\n   put_device()\n    kobject_put()\n     ...\n      zloop_free_disk()\n        kvfree(zlo)\n  blk_mq_free_tag_set(&zlo->tag_set)\n\nTo avoid the BUG, move the call to blk_mq_free_tag_set(&zlo->tag_set)\nfrom zloop_ctl_remove() into zloop_free_disk(). This ensures that\nthe tag_set is freed before the call to kvfree(zlo).","publishedAt":"2025-08-22T16:00:24.445Z","updatedAt":"2026-05-11T21:31:44.553Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"eb0570c7df23c2f32fe899fcdaf8fca9a5ecd51e","status":"affected","lessThan":"c7c87046b41a9ef28ee7ac476c369da5b5228bc5","versionType":"git"},{"version":"eb0570c7df23c2f32fe899fcdaf8fca9a5ecd51e","status":"affected","lessThan":"765761851d89c772f482494d452e266795460278","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/block/zloop.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.16","versionType":"semver"},{"version":"6.16.1","status":"unaffected","lessThanOrEqual":"6.16.*","versionType":"semver"},{"version":"6.17","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/block/zloop.c"]}],"references":["https://git.kernel.org/stable/c/c7c87046b41a9ef28ee7ac476c369da5b5228bc5","https://git.kernel.org/stable/c/765761851d89c772f482494d452e266795460278"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:09.358Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/38xxx/CVE-2025-38620.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-38620","state":"PUBLISHED","datePublished":"2025-08-22T16:00:24.445Z","dateUpdated":"2026-05-11T21:31:44.553Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-04-16T04:51:24.029Z"},"containers":{"cna":{"title":"zloop: fix KASAN use-after-free of tag set","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nzloop: fix KASAN use-after-free of tag set\n\nWhen a zoned loop device, or zloop device, is removed, KASAN enabled\nkernel reports \"BUG KASAN use-after-free\" in blk_mq_free_tag_set(). The\nBUG happens because zloop_ctl_remove() calls put_disk(), which invokes\nzloop_free_disk(). The zloop_free_disk() frees the memory allocated for\nthe zlo pointer. However, after the memory is freed, zloop_ctl_remove()\ncalls blk_mq_free_tag_set(&zlo->tag_set), which accesses the freed zlo.\nHence the KASAN use-after-free.\n\n zloop_ctl_remove()\n  put_disk(zlo->disk)\n   put_device()\n    kobject_put()\n     ...\n      zloop_free_disk()\n        kvfree(zlo)\n  blk_mq_free_tag_set(&zlo->tag_set)\n\nTo avoid the BUG, move the call to blk_mq_free_tag_set(&zlo->tag_set)\nfrom zloop_ctl_remove() into zloop_free_disk(). This ensures that\nthe tag_set is freed before the call to kvfree(zlo)."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"eb0570c7df23c2f32fe899fcdaf8fca9a5ecd51e","status":"affected","lessThan":"c7c87046b41a9ef28ee7ac476c369da5b5228bc5","versionType":"git"},{"version":"eb0570c7df23c2f32fe899fcdaf8fca9a5ecd51e","status":"affected","lessThan":"765761851d89c772f482494d452e266795460278","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/block/zloop.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.16","versionType":"semver"},{"version":"6.16.1","status":"unaffected","lessThanOrEqual":"6.16.*","versionType":"semver"},{"version":"6.17","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/block/zloop.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/c7c87046b41a9ef28ee7ac476c369da5b5228bc5"},{"url":"https://git.kernel.org/stable/c/765761851d89c772f482494d452e266795460278"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T21:31:44.553Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.16","versionEndExcluding":"6.16.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.16","versionEndExcluding":"6.17"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}