CVE-2026-89486
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipmi: Fix use-after-free of cmd_rcvr in _ipmi_destroy_user()
Commit 9e91f8a6c868 ("ipmi:msghandler: Remove srcu for the ipmi_interfaces list") dropped the synchronize_rcu() between unlinking the command receivers from intf->cmd_rcvrs and freeing them, updating only the comment that explains why the barrier is needed.
The cmd_rcvrs list is still traversed under plain RCU: find_cmd_rcvr() walks it inside rcu_read_lock(), and handle_ipmb_get_msg_cmd() borrows rcvr->user from that lookup within the same read-side section. Without the grace period, _ipmi_destroy_user() can kfree() a cmd_rcvr while a reader still holds a pointer to it, causing a use-after-free.
The rework only made srcu unnecessary for the interfaces list; the cmd_rcvrs list still relies on plain RCU. Restore the synchronize_rcu() before freeing the receivers.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 9e91f8a6c8688e27f4ccce7db457da87d6458836 < 3088e41292fecf132f85f79af5ee4d620b9ff1b4 | affected |
| Linux | Linux | 9e91f8a6c8688e27f4ccce7db457da87d6458836 < 5dc0b2a9af95a97861c1bffaf1687a3173e395c5 | affected |
| Linux | Linux | 9e91f8a6c8688e27f4ccce7db457da87d6458836 < 05ec76cfbce653e07cec19b9b8b20e33449d5d87 | affected |
| Linux | Linux | 6.16 | affected |
| Linux | Linux | 0 < 6.16 | unaffected |
| Linux | Linux | 6.18.50 <= 6.18.* | unaffected |
| Linux | Linux | 7.2.4 <= 7.2.* | unaffected |
| Linux | Linux | 7.3-rc1 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/3088e41292fecf132f85f79af5ee4d620b9ff1b4
- https://git.kernel.org/stable/c/5dc0b2a9af95a97861c1bffaf1687a3173e395c5
- https://git.kernel.org/stable/c/05ec76cfbce653e07cec19b9b8b20e33449d5d87
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.