In the Linux kernel, the following vulnerability has been resolved:
ipmi: Fix use-after-free and list corruption on sender error
The analysis from Breno:
When the SMI sender returns an error, smi_work() delivers an error response but then jumps back to restart without cleaning up properly:
This causes listadd corruption ("listadd double add") because the recvmsg is added to the usermsgs list twice. Subsequently, the corrupted list leads to use-after-free when the memory is freed and reused, and eventually a NULL pointer dereference when accessing recv_msg->done.
The buggy sequence:
sender() fails -> delivererrresponse(recvmsg) // recvmsg queued for delivery -> goto restart // currmsg not cleared! sender() fails again (same message!) -> delivererrresponse(recvmsg) // tries to queue same recv_msg -> LIST CORRUPTION
Fix this by freeing the message and setting it to NULL on a send error. Also, always free the newmsg on a send error, otherwise it will leak.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23322.json",
"cna_assigner": "Linux"
}