{"id":"CVE-2026-72102","state":"PUBLISHED","title":"dm_early_create: fix freeing used table on dm_resume failure","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndm_early_create: fix freeing used table on dm_resume failure\n\nIf dm_resume fails, the kernel attempts to free table with\ndm_table_destroy, but the table was already instantiated with\ndm_swap_table. This commit skips the call to dm_table_destroy in this\ncase.","publishedAt":"2026-08-15T05:52:46.200Z","updatedAt":"2026-10-19T21:19:27.969Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"3ba377a47a093cc19647ca7f102acd33a211d472","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"72c3283a2abd60ecef295e02270f22ef1dfccd25","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"d6066145347e14db84c35b445e309f095d0d8125","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"259ce9e3fc3a3f8c4e393a2072b8f34302eb4d5a","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"5f6500d44a912d4aed664600966706d76b81d9af","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"92e3c93d60be1f2425738cd66dbadac7d6bc0cd1","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"7d8ed7cb844df21e4d93af11250fb3a5cb861147","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"366665416f20527ff7cad548a32d1ddf23195740","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/dm-ioctl.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.1","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/dm-ioctl.c"]}],"references":["https://git.kernel.org/stable/c/3ba377a47a093cc19647ca7f102acd33a211d472","https://git.kernel.org/stable/c/72c3283a2abd60ecef295e02270f22ef1dfccd25","https://git.kernel.org/stable/c/d6066145347e14db84c35b445e309f095d0d8125","https://git.kernel.org/stable/c/259ce9e3fc3a3f8c4e393a2072b8f34302eb4d5a","https://git.kernel.org/stable/c/5f6500d44a912d4aed664600966706d76b81d9af","https://git.kernel.org/stable/c/92e3c93d60be1f2425738cd66dbadac7d6bc0cd1","https://git.kernel.org/stable/c/7d8ed7cb844df21e4d93af11250fb3a5cb861147","https://git.kernel.org/stable/c/366665416f20527ff7cad548a32d1ddf23195740"],"weaknesses":["CWE-415"],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/72xxx/CVE-2026-72102.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-72102","state":"PUBLISHED","datePublished":"2026-08-15T05:52:46.200Z","dateUpdated":"2026-10-19T21:19:27.969Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-09T03:40:39.905Z"},"containers":{"cna":{"title":"dm_early_create: fix freeing used table on dm_resume failure","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndm_early_create: fix freeing used table on dm_resume failure\n\nIf dm_resume fails, the kernel attempts to free table with\ndm_table_destroy, but the table was already instantiated with\ndm_swap_table. This commit skips the call to dm_table_destroy in this\ncase."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"3ba377a47a093cc19647ca7f102acd33a211d472","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"72c3283a2abd60ecef295e02270f22ef1dfccd25","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"d6066145347e14db84c35b445e309f095d0d8125","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"259ce9e3fc3a3f8c4e393a2072b8f34302eb4d5a","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"5f6500d44a912d4aed664600966706d76b81d9af","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"92e3c93d60be1f2425738cd66dbadac7d6bc0cd1","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"7d8ed7cb844df21e4d93af11250fb3a5cb861147","versionType":"git"},{"version":"6bbc923dfcf57d6b97388819a7393835664c7a8e","status":"affected","lessThan":"366665416f20527ff7cad548a32d1ddf23195740","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/dm-ioctl.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.1","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/md/dm-ioctl.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/3ba377a47a093cc19647ca7f102acd33a211d472"},{"url":"https://git.kernel.org/stable/c/72c3283a2abd60ecef295e02270f22ef1dfccd25"},{"url":"https://git.kernel.org/stable/c/d6066145347e14db84c35b445e309f095d0d8125"},{"url":"https://git.kernel.org/stable/c/259ce9e3fc3a3f8c4e393a2072b8f34302eb4d5a"},{"url":"https://git.kernel.org/stable/c/5f6500d44a912d4aed664600966706d76b81d9af"},{"url":"https://git.kernel.org/stable/c/92e3c93d60be1f2425738cd66dbadac7d6bc0cd1"},{"url":"https://git.kernel.org/stable/c/7d8ed7cb844df21e4d93af11250fb3a5cb861147"},{"url":"https://git.kernel.org/stable/c/366665416f20527ff7cad548a32d1ddf23195740"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The bug is only reachable via the dm-mod.create kernel boot parameter processed in late_initcall dm_init_init() calling dm_early_create(); there is no network, adjacent, ioctl, netlink, or post-boot userspace path into this __init-only device-mapper setup code.\nAC:L - Once dm_swap_table() installs the table, an attacker controlling dm-mod.create can deterministically force dm_resume() to fail (e.g., paired snapshot-origin preresume handover rejection or verity/crypt preresume errors) without races or attacker-uncontrolled memory layout.\nPR:L - dm_early_create() performs no capability or credential checks on its error path; unlike runtime DM_DEV_CREATE ioctls that require CAP_SYS_ADMIN, triggering the post-swap dm_resume failure only needs crafting dm-mod.create table parameters at boot, not real-root dm-ioctl privileges unobtainable via user namespaces.\nUI:N - The vulnerable teardown runs automatically during late_initcall once dm-mod.create is present and dm_resume fails; no victim must open files, mount filesystems, or take any interactive action beyond rebooting with the crafted boot configuration.\nS:U - The use-after-free and double-free corrupt kernel heap memory during device-mapper early boot setup within the kernel trust boundary; it does not cross VM, container, or IOMMU isolation boundaries into another security authority.\nC:H - dm_table_destroy() frees a dm_table still referenced through md->map after dm_swap_table(), creating a kernel heap use-after-free that can expose freed object contents and adjacent kernel memory to subsequent allocations and readers.\nI:H - UAF on the live dm_table enables heap grooming and corrupts destructor paths invoked during erroneous teardown (dm_table_destroy target dtr hooks, then dm_destroy __unbind), providing memory corruption primitives developable into arbitrary kernel writes or control-flow hijack.\nA:H - Freeing the active table then calling dm_destroy()/__unbind() on the same object causes double-free/use-after-free during boot cleanup, readily producing kernel panics, oopses, or unbootable systems on dm-mod.create rootfs platforms (Android/ChromeOS/embedded)."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T05:40:16.779Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.10.261"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.15.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"6.12.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"6.18.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-72102","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T15:52:02.070823Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-415","lang":"en","type":"CWE","description":"CWE-415 Double Free"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T21:19:27.969Z"}}]}}}