CVE-2026-31689
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
27/04/2026
Last modified:
27/04/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
EDAC/mc: Fix error path ordering in edac_mc_alloc()<br />
<br />
When the mci->pvt_info allocation in edac_mc_alloc() fails, the error path<br />
will call put_device() which will end up calling the device&#39;s release<br />
function.<br />
<br />
However, the init ordering is wrong such that device_initialize() happens<br />
*after* the failed allocation and thus the device itself and the release<br />
function pointer are not initialized yet when they&#39;re called:<br />
<br />
MCE: In-kernel MCE decoding enabled.<br />
------------[ cut here ]------------<br />
kobject: &#39;(null)&#39;: is not initialized, yet kobject_put() is being called.<br />
WARNING: lib/kobject.c:734 at kobject_put, CPU#22: systemd-udevd<br />
CPU: 22 UID: 0 PID: 538 Comm: systemd-udevd Not tainted 7.0.0-rc1+ #2 PREEMPT(full)<br />
RIP: 0010:kobject_put<br />
Call Trace:<br />
<br />
edac_mc_alloc+0xbe/0xe0 [edac_core]<br />
amd64_edac_init+0x7a4/0xff0 [amd64_edac]<br />
? __pfx_amd64_edac_init+0x10/0x10 [amd64_edac]<br />
do_one_initcall<br />
...<br />
<br />
Reorder the calling sequence so that the device is initialized and thus the<br />
release function pointer is properly set before it can be used.<br />
<br />
This was found by Claude while reviewing another EDAC patch.
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/51520e03e70d6c73e33ee7cbe0319767d05764fe
- https://git.kernel.org/stable/c/75825648ce984ca4cebb28e4bd2bf8c3a7e837c5
- https://git.kernel.org/stable/c/87ce8ae511962e105bcb3534944208c6a9471ed9
- https://git.kernel.org/stable/c/aae95970fad2127a1bd49d8713c7cd0677dcd2d6
- https://git.kernel.org/stable/c/d20e98c2df9354cc744431ad8ccbf49405b8b40f
- https://git.kernel.org/stable/c/d3de72e2a2b9ee3a57734c1c068823e41a707715



