CVE-2026-80698

Summary

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.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux7c5dd23e57c14cf7177b8a5e0fd08916e0c60005 < c93a9f652b7373ac8ee5bfcc18a9af76959b6c6caffected
LinuxLinux7c5dd23e57c14cf7177b8a5e0fd08916e0c60005 < ec2d428b2e32dd157de8f86a86dd85c5b2c8f45caffected
LinuxLinux394e179f51fce06d6bb8ca5af8fa53f33c718cf4affected
LinuxLinuxb09ad63775f58a8de3e228f59fb9543bfd964c9caffected
LinuxLinux26c219e7522c494f7865a928c81ced84cc7db3aeaffected
LinuxLinux35ea8721d9e6e74c6847cf4d6c27e883b00b0331affected
LinuxLinuxe6f86fe368cdc14764833a6e8bb59f7a85a40e06affected
LinuxLinux1c28fd5f94d8996f7dd3805bd6a16ed46a5d0886affected
LinuxLinux5.11.22 < 5.12affected
LinuxLinux5.12.5 < 5.13affected
LinuxLinux5.13affected
LinuxLinux0 < 5.13unaffected
LinuxLinux7.1.8 <= 7.1.*unaffected
LinuxLinux7.2 <= *unaffected

Weaknesses

References