CVE-2025-39870CWE-415

CVE-2025-39870

High · published September 23, 2025

CVSS v3.1
7.8
EPSS
0%
Percentile
4.6
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00158 · 4.6th percentile
Weakness
CWE-415 · Double Free
Published
2025-09-23T10:15Z
Affected products (13)
ProductVersionsFixed in
linux/linux_kernel≥ 6.1.140, < 6.1.1536.1.153
linux/linux_kernel≥ 6.6.92, < 6.6.1076.6.107
linux/linux_kernel≥ 6.12.30, < 6.12.486.12.48
linux/linux_kernel≥ 6.14.8, < 6.156.15
linux/linux_kernel≥ 6.15.1, < 6.16.86.16.8
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
debian/debian_linuxall versions—
References (6)
EPSS history
Timeline
  • 23 SEP 06:00Z
    dmaengine: idxd: Fix double free in idxd_setup_wqs()
    cvelistv5