{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-39870","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-04-16T07:20:57.143Z","datePublished":"2025-09-23T06:00:44.369Z","dateUpdated":"2026-05-11T21:38:00.969Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-05-11T21:38:00.969Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndmaengine: idxd: Fix double free in idxd_setup_wqs()\n\nThe clean up in idxd_setup_wqs() has had a couple bugs because the error\nhandling is a bit subtle.  It's simpler to just re-write it in a cleaner\nway.  The issues here are:\n\n1) If \"idxd->max_wqs\" is <= 0 then we call put_device(conf_dev) when\n   \"conf_dev\" hasn't been initialized.\n2) If kzalloc_node() fails then again \"conf_dev\" is invalid.  It's\n   either uninitialized or it points to the \"conf_dev\" from the\n   previous iteration so it leads to a double free.\n\nIt's better to free partial loop iterations within the loop and then\nthe unwinding at the end can handle whole loop iterations.  I also\nrenamed the labels to describe what the goto does and not where the goto\nwas located."}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/dma/idxd/init.c"],"versions":[{"version":"d584acdf54f409cb7eae1359ae6c12aaabedeed8","lessThan":"25e6146c2812487a88f619d5ff6efbdcd5b2bc31","status":"affected","versionType":"git"},{"version":"47846211998a9ffb0fcc08092eb95ac783d2b11a","lessThan":"df82c7901513fd0fc738052a8e6a330d92cc8ec9","status":"affected","versionType":"git"},{"version":"5fcd392dae6d6aba7dc64ffdbb838ff191315da3","lessThan":"ec5430d090d0b6ace8fefa290fc37e88930017d2","status":"affected","versionType":"git"},{"version":"3fd2f4bc010cdfbc07dd21018dc65bd9370eb7a4","lessThan":"9f0e225635475b2285b966271d5e82cba74295b1","status":"affected","versionType":"git"},{"version":"3fd2f4bc010cdfbc07dd21018dc65bd9370eb7a4","lessThan":"39aaa337449e71a41d4813be0226a722827ba606","status":"affected","versionType":"git"},{"version":"ed2c66000aa64c0d2621864831f0d04c820a1441","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/dma/idxd/init.c"],"versions":[{"version":"6.15","status":"affected"},{"version":"0","lessThan":"6.15","status":"unaffected","versionType":"semver"},{"version":"6.1.153","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.107","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.48","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.16.8","lessThanOrEqual":"6.16.*","status":"unaffected","versionType":"semver"},{"version":"6.17","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.140","versionEndExcluding":"6.1.153"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.92","versionEndExcluding":"6.6.107"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.30","versionEndExcluding":"6.12.48"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.15","versionEndExcluding":"6.16.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.15","versionEndExcluding":"6.17"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14.8"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/25e6146c2812487a88f619d5ff6efbdcd5b2bc31"},{"url":"https://git.kernel.org/stable/c/df82c7901513fd0fc738052a8e6a330d92cc8ec9"},{"url":"https://git.kernel.org/stable/c/ec5430d090d0b6ace8fefa290fc37e88930017d2"},{"url":"https://git.kernel.org/stable/c/9f0e225635475b2285b966271d5e82cba74295b1"},{"url":"https://git.kernel.org/stable/c/39aaa337449e71a41d4813be0226a722827ba606"}],"title":"dmaengine: idxd: Fix double free in idxd_setup_wqs()","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"}],"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2025-11-03T17:44:19.166Z"}}]}}