Description
In the Linux kernel, the following vulnerability has been resolved:

dmaengine: idxd: fix double free of wq, engine, and group structs

The release callbacks for wq, engine, and group devices
(idxd_conf_wq_release, idxd_conf_engine_release,
idxd_conf_group_release) each call kfree() on the enclosing struct.
The setup error paths and cleanup functions also call kfree()
explicitly after put_device(), producing a double free whenever
put_device() drops the reference count to zero and fires the release.

In the setup functions, device_initialize() is called before
device_add(), so the reference count is exactly 1 at the error sites.
put_device() unconditionally fires the release, which frees the struct;
the subsequent explicit kfree() then operates on freed memory.

For idxd_setup_wqs(), the wq release callback also owns opcap_bmap
and wqcfg. The error unwind additionally freed those fields explicitly
before calling put_device(), causing further double frees on both.

Remove the redundant explicit kfree() calls from all setup error paths
and cleanup functions for wq, engine, and group structs, delegating
sole ownership of those allocations to the release callbacks.
Published: 2026-08-28
Score: 7.0 High
EPSS: < 1% Very Low
KEV: No
Impact: Double free leading to kernel memory corruption
Action: Patch immediately
AI Analysis

Impact

The idxd driver in the Linux kernel has a flaw that corresponds to CWE-1341: Double Free, where release callbacks for work queue, engine, and group structures each free the enclosing struct. In error handling and cleanup paths an explicit kfree is also called after put_device() triggers the release callback. If put_device() drops the reference count to zero, the release callback frees the structure first and the subsequent explicit kfree operates on freed memory, causing a double free. This double free can corrupt kernel memory, potentially leading to a crash or a use‑after‑free that a malicious local attacker could exploit to execute code with kernel privileges. The likely attack vector is local interaction with the idxd device when inducing an error or a cleanup condition.

Affected Systems

Any Linux kernel build that includes the buggy idxd code is affected. All distributions shipping such kernels are potentially at risk until the patch that removes the redundant kfree calls is applied. No specific kernel version range is given, so the vulnerability may exist in current and future kernel releases that incorporate the flawed code.

Risk and Exploitability

The CVSS score is 7.0, indicating medium‑to‑high severity for a local attacker. The EPSS score is < 1%, suggesting a very low likelihood of exploitation but not zero. The vulnerability is not listed in CISA KEV. The double free can corrupt kernel memory, potentially leading to a crash or a use‑after‑free that a malicious local attacker could exploit to execute code with kernel privileges. The likely attack vector is local interaction with the idxd device when inducing an error or a cleanup condition. A local attacker with sufficient privileges to invoke the driver’s error or cleanup logic could trigger the double free, leading to a system crash or (if memory is manipulated) to privilege escalation.

Generated by OpenCVE AI on September 2, 2026 at 05:39 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update containing the idxd driver fix that removes the redundant kfree calls.
  • If an update is unavailable, prevent the driver from loading by removing it with modprobe -r idxd or by blacklisting it in modprobe.d, thereby eliminating the double free risk.
  • If driver functionality is required, recompile the kernel without idxd support or restrict access to the device nodes and physical hardware, so that the bug cannot be triggered.

Generated by OpenCVE AI on September 2, 2026 at 05:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 01 Sep 2026 22:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-415
CWE-416

Tue, 01 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-1341
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Moderate


Fri, 28 Aug 2026 12:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-415
CWE-416

Fri, 28 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: dmaengine: idxd: fix double free of wq, engine, and group structs The release callbacks for wq, engine, and group devices (idxd_conf_wq_release, idxd_conf_engine_release, idxd_conf_group_release) each call kfree() on the enclosing struct. The setup error paths and cleanup functions also call kfree() explicitly after put_device(), producing a double free whenever put_device() drops the reference count to zero and fires the release. In the setup functions, device_initialize() is called before device_add(), so the reference count is exactly 1 at the error sites. put_device() unconditionally fires the release, which frees the struct; the subsequent explicit kfree() then operates on freed memory. For idxd_setup_wqs(), the wq release callback also owns opcap_bmap and wqcfg. The error unwind additionally freed those fields explicitly before calling put_device(), causing further double frees on both. Remove the redundant explicit kfree() calls from all setup error paths and cleanup functions for wq, engine, and group structs, delegating sole ownership of those allocations to the release callbacks.
Title dmaengine: idxd: fix double free of wq, engine, and group structs
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-28T06:53:02.829Z

Reserved: 2026-08-26T14:34:25.786Z

Link: CVE-2026-80698

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-28T08:16:55.297

Modified: 2026-08-28T08:16:55.297

Link: CVE-2026-80698

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-28T00:00:00Z

Links: CVE-2026-80698 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-02T05:45:04Z

Weaknesses
  • CWE-1341

    Multiple Releases of Same Resource or Handle