| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2024-26932: usb: typec: tcpm: fix double-free issue in tcpm_port_unregister_pd() |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| usb: typec: tcpm: fix double-free issue in tcpm_port_unregister_pd() |
| |
| When unregister pd capabilitie in tcpm, KASAN will capture below double |
| -free issue. The root cause is the same capabilitiy will be kfreed twice, |
| the first time is kfreed by pd_capabilities_release() and the second time |
| is explicitly kfreed by tcpm_port_unregister_pd(). |
| |
| [ 3.988059] BUG: KASAN: double-free in tcpm_port_unregister_pd+0x1a4/0x3dc |
| [ 3.995001] Free of addr ffff0008164d3000 by task kworker/u16:0/10 |
| [ 4.001206] |
| [ 4.002712] CPU: 2 PID: 10 Comm: kworker/u16:0 Not tainted 6.8.0-rc5-next-20240220-05616-g52728c567a55 #53 |
| [ 4.012402] Hardware name: Freescale i.MX8QXP MEK (DT) |
| [ 4.017569] Workqueue: events_unbound deferred_probe_work_func |
| [ 4.023456] Call trace: |
| [ 4.025920] dump_backtrace+0x94/0xec |
| [ 4.029629] show_stack+0x18/0x24 |
| [ 4.032974] dump_stack_lvl+0x78/0x90 |
| [ 4.036675] print_report+0xfc/0x5c0 |
| [ 4.040289] kasan_report_invalid_free+0xa0/0xc0 |
| [ 4.044937] __kasan_slab_free+0x124/0x154 |
| [ 4.049072] kfree+0xb4/0x1e8 |
| [ 4.052069] tcpm_port_unregister_pd+0x1a4/0x3dc |
| [ 4.056725] tcpm_register_port+0x1dd0/0x2558 |
| [ 4.061121] tcpci_register_port+0x420/0x71c |
| [ 4.065430] tcpci_probe+0x118/0x2e0 |
| |
| To fix the issue, this will remove kree() from tcpm_port_unregister_pd(). |
| |
| The Linux kernel CVE team has assigned CVE-2024-26932 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 6.8 with commit cd099cde4ed264403b434d8344994f97ac2a4349 and fixed in 6.8.3 with commit 242e425ed580b2f4dbcb86c8fc03a410a4084a69 |
| Issue introduced in 6.8 with commit cd099cde4ed264403b434d8344994f97ac2a4349 and fixed in 6.9 with commit b63f90487bdf93a4223ce7853d14717e9d452856 |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2024-26932 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| drivers/usb/typec/tcpm/tcpm.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/242e425ed580b2f4dbcb86c8fc03a410a4084a69 |
| https://git.kernel.org/stable/c/b63f90487bdf93a4223ce7853d14717e9d452856 |