7.8

CVE-2025-39870: dmaengine: idxd: Fix double free in idxd_setup_wqs()

Analyzed
AliasesUBUNTU-CVE-2025-39870DEBIAN-CVE-2025-39870
Published 23-09-2025Last modified 23-05-2026

Vulnerability summary

CVE-2025-39870 is a high (CVSS 7.8) Double Free vulnerability in debian debian_linux. EPSS estimates a 0.16% chance of exploitation in the next 30 days, higher than 4.9% of scored vulnerabilities.

Priority
Routine

Not severe (CVSS 7.8, local access); no exploitation reported by the 5 checked sources

Source freshness unavailable

How is this decided?
CVSS score
7.8/10
010
High · v3.1 (NVD)
EPSS score
0.16%
0%100%
Low · 0.00 pp in 30 days
KEVNot listedNot listed by any tracked catalog.
RansomwareNot flaggedNo ransomware use recorded.
Public exploits0No public exploits recorded

Advisory lineage

Upstream 0 · Downstream 28 · Related 25

Timeline

  1. 23-09-2025
    PublishedVulnerability first disclosed.
  2. 23-05-2026
    Last modifiedVulnerability information updated.

Description

In the Linux kernel, the following vulnerability has been resolved: dmaengine: idxd: Fix double free in idxd_setup_wqs() The clean up in idxd_setup_wqs() has had a couple bugs because the error handling is a bit subtle. It's simpler to just re-write it in a cleaner way. The issues here are: 1) If "idxd->max_wqs" is <= 0 then we call put_device(conf_dev) when "conf_dev" hasn't been initialized. 2) If kzalloc_node() fails then again "conf_dev" is invalid. It's either uninitialized or it points to the "conf_dev" from the previous iteration so it leads to a double free. It's better to free partial loop iterations within the loop and then the unwinding at the end can handle whole loop iterations. I also renamed the labels to describe what the goto does and not where the goto was located.

CVSS metrics

3 scores · 3 sources · 1 version

EPSS trend

Probability

0.16%

Chance of exploitation in the next 30 days

Percentile

5%

Versus all other CVEs

30-day change

No change 0.00 pp

From 0.15% on 04-10-2026

04-10-202603-11-2026

Known exploited

Compare KEV catalogs
CISA KEV

Not in the CISA KEV catalog.

ENISA CNW

Not in the ENISA CNW catalog.

CIRCL

Not in the CIRCL catalog.

Public exploits

0 found

No public exploits indexed.

Weaknesses

CWE · root cause

Affected systems

Version check

Known conditions: local access, low-privilege account, no user interaction (CVSS vector). Other conditions: not stated in public data.

Ubuntu117 products
  • linux< 6.8.0-106.106
  • linux-allwinner-5.19All versions (No fix recorded)
  • linux-aws< 6.8.0-1050.53
  • linux-aws-5.0All versions (No fix recorded)
  • linux-aws-5.11All versions (No fix recorded)
Debian2 products
  • linux< 6.1.153-1 | < 6.12.48-1 | < 6.16.8-1
  • debian_linuxEOL11.0
Linux2 products
  • linux≥ d584acdf54f409cb7eae1359ae6c12aaabedeed8, < 25e6146c2812487a88f619d5ff6efbdcd5b2bc31 | ≥ 47846211998a9ffb0fcc08092eb95ac783d2b11a, < df82c7901513fd0fc738052a8e6a330d92cc8ec9 | ≥ 5fcd392dae6d6aba7dc64ffdbb838ff191315da3, < ec5430d090d0b6ace8fefa290fc37e88930017d2 | ≥ 3fd2f4bc010cdfbc07dd21018dc65bd9370eb7a4, < 9f0e225635475b2285b966271d5e82cba74295b1 | ≥ 3fd2f4bc010cdfbc07dd21018dc65bd9370eb7a4, < 39aaa337449e71a41d4813be0226a722827ba606 | ed2c66000aa64c0d2621864831f0d04c820a1441 | ≥ 6.1.140, < 6.1.153 | ≥ 6.6.92, < 6.6.107 | ≥ 6.12.30, < 6.12.48 | ≥ 6.14.8, < 6.15 | 6.15
  • linux_kernelEOL≥ 6.1.140, < 6.1.153 | ≥ 6.6.92, < 6.6.107 | ≥ 6.12.30, < 6.12.48 | ≥ 6.14.8, < 6.15 | ≥ 6.15.1, < 6.16.8 | 6.15 | 6.15:rc7 | 6.17:rc1 | 6.17:rc2 | 6.17:rc3 | 6.17:rc4 | 6.17:rc5

3 vendors · 121 products

References

20 links
Show all 20 references