CVE-2026-23322
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
25/03/2026
Last modified:
23/04/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
ipmi: Fix use-after-free and list corruption on sender error<br />
<br />
The analysis from Breno:<br />
<br />
When the SMI sender returns an error, smi_work() delivers an error<br />
response but then jumps back to restart without cleaning up properly:<br />
<br />
1. intf->curr_msg is not cleared, so no new message is pulled<br />
2. newmsg still points to the message, causing sender() to be called<br />
again with the same message<br />
3. If sender() fails again, deliver_err_response() is called with<br />
the same recv_msg that was already queued for delivery<br />
<br />
This causes list_add corruption ("list_add double add") because the<br />
recv_msg is added to the user_msgs list twice. Subsequently, the<br />
corrupted list leads to use-after-free when the memory is freed and<br />
reused, and eventually a NULL pointer dereference when accessing<br />
recv_msg->done.<br />
<br />
The buggy sequence:<br />
<br />
sender() fails<br />
-> deliver_err_response(recv_msg) // recv_msg queued for delivery<br />
-> goto restart // curr_msg not cleared!<br />
sender() fails again (same message!)<br />
-> deliver_err_response(recv_msg) // tries to queue same recv_msg<br />
-> LIST CORRUPTION<br />
<br />
Fix this by freeing the message and setting it to NULL on a send error.<br />
Also, always free the newmsg on a send error, otherwise it will leak.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.18.1 (including) | 6.18.17 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 6.19.7 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.18:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



