Description (CNA)
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 (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected f63723ca7d7623f9dae1990973cd158671f03c56 before 122ca6b2af714e114c9b872a48372ace31a9ab1f; affected 348121b29594d42d1635648fd3ed31dfa25351d5 before 9409e18ffe7378d202efe1cf69989df9f67b0369; affected 53d6e403affbf6df2c859a0ea00ccfc1e72090ca before e2a3b77df6aef031455dd83ea8ed4344b7dca1f9; affected b52da4054ee0bf9ecb44996f2c83236ff50b3812 before f5c5065963024390ddad51bd455d1adc710de575; affected b52da4054ee0bf9ecb44996f2c83236ff50b3812 before 0fd23994ec8c5436d9f0b50848deb87ed933e6b3; affected b52da4054ee0bf9ecb44996f2c83236ff50b3812 before a3f3859cecacb64f18fd446271ece9a3b3f2d4de; affected 0ed73be9a2547ffb9b5c1d879ad9bfab73d920b5; affected 6.1.157 before 6.1.184; affected 6.6.113 before 6.6.148; affected 6.12.54 before 6.12.101; affected 6.17.4 before 6.18 |
| Linux / Linux | affected 6.18; unaffected 0 before 6.18; unaffected 6.1.184 through 6.1.*; unaffected 6.6.148 through 6.6.*; unaffected 6.12.101 through 6.12.*; unaffected 6.18.40 through 6.18.*; unaffected 7.1.5 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
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