Description
In the Linux kernel, the following vulnerability has been resolved: ipmi: fix refcount leak in i_ipmi_request() When a caller provides a `supplied_recv` message to i_ipmi_request(), the function increments the user's `nr_msgs` reference count. If an error occurs later, the out_err cleanup path only frees the recv_msg if the function allocated it itself (i.e., !supplied_recv). In the supplied_recv case the cleanup is skipped, leaving the reference count elevated. The caller ipmi_request_supply_msgs() does not release the supplied_recv on error, so the reference is permanently leaked. Fix this by explicitly reverting the reference count operations when a supplied recv_msg with a valid user pointer is present in the error path: decrement nr_msgs and drop the user's kref.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
f63723ca7d7623f9dae1990973cd158671f03c56 to < 122ca6b2af714e114c9b872a48372ace31a9ab1faffected348121b29594d42d1635648fd3ed31dfa25351d5 to < 9409e18ffe7378d202efe1cf69989df9f67b0369affected53d6e403affbf6df2c859a0ea00ccfc1e72090ca to < e2a3b77df6aef031455dd83ea8ed4344b7dca1f9affectedb52da4054ee0bf9ecb44996f2c83236ff50b3812 to < f5c5065963024390ddad51bd455d1adc710de575affectedb52da4054ee0bf9ecb44996f2c83236ff50b3812 to < 0fd23994ec8c5436d9f0b50848deb87ed933e6b3affectedb52da4054ee0bf9ecb44996f2c83236ff50b3812 to < a3f3859cecacb64f18fd446271ece9a3b3f2d4deaffected0ed73be9a2547ffb9b5c1d879ad9bfab73d920b5affected6.1.157 to < 6.1.184affected6.6.113 to < 6.6.148affected6.12.54 to < 6.12.101affected6.17.4 to < 6.18affected
Linux Linux
Default version status: affected
6.18affected0 to < 6.18unaffected6.1.184 to ≤ 6.1.*unaffected6.6.148 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/122ca6b2af714e114c9b872a48372ace31a9ab1f ↗
- https://git.kernel.org/stable/c/9409e18ffe7378d202efe1cf69989df9f67b0369 ↗
- https://git.kernel.org/stable/c/e2a3b77df6aef031455dd83ea8ed4344b7dca1f9 ↗
- https://git.kernel.org/stable/c/f5c5065963024390ddad51bd455d1adc710de575 ↗
- https://git.kernel.org/stable/c/0fd23994ec8c5436d9f0b50848deb87ed933e6b3 ↗
- https://git.kernel.org/stable/c/a3f3859cecacb64f18fd446271ece9a3b3f2d4de ↗