| 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-2021-47438: net/mlx5e: Fix memory leak in mlx5_core_destroy_cq() error path |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| net/mlx5e: Fix memory leak in mlx5_core_destroy_cq() error path |
| |
| Prior to this patch in case mlx5_core_destroy_cq() failed it returns |
| without completing all destroy operations and that leads to memory leak. |
| Instead, complete the destroy flow before return error. |
| |
| Also move mlx5_debug_cq_remove() to the beginning of mlx5_core_destroy_cq() |
| to be symmetrical with mlx5_core_create_cq(). |
| |
| kmemleak complains on: |
| |
| unreferenced object 0xc000000038625100 (size 64): |
| comm "ethtool", pid 28301, jiffies 4298062946 (age 785.380s) |
| hex dump (first 32 bytes): |
| 60 01 48 94 00 00 00 c0 b8 05 34 c3 00 00 00 c0 `.H.......4..... |
| 02 00 00 00 00 00 00 00 00 db 7d c1 00 00 00 c0 ..........}..... |
| backtrace: |
| [<000000009e8643cb>] add_res_tree+0xd0/0x270 [mlx5_core] |
| [<00000000e7cb8e6c>] mlx5_debug_cq_add+0x5c/0xc0 [mlx5_core] |
| [<000000002a12918f>] mlx5_core_create_cq+0x1d0/0x2d0 [mlx5_core] |
| [<00000000cef0a696>] mlx5e_create_cq+0x210/0x3f0 [mlx5_core] |
| [<000000009c642c26>] mlx5e_open_cq+0xb4/0x130 [mlx5_core] |
| [<0000000058dfa578>] mlx5e_ptp_open+0x7f4/0xe10 [mlx5_core] |
| [<0000000081839561>] mlx5e_open_channels+0x9cc/0x13e0 [mlx5_core] |
| [<0000000009cf05d4>] mlx5e_switch_priv_channels+0xa4/0x230 |
| [mlx5_core] |
| [<0000000042bbedd8>] mlx5e_safe_switch_params+0x14c/0x300 |
| [mlx5_core] |
| [<0000000004bc9db8>] set_pflag_tx_port_ts+0x9c/0x160 [mlx5_core] |
| [<00000000a0553443>] mlx5e_set_priv_flags+0xd0/0x1b0 [mlx5_core] |
| [<00000000a8f3d84b>] ethnl_set_privflags+0x234/0x2d0 |
| [<00000000fd27f27c>] genl_family_rcv_msg_doit+0x108/0x1d0 |
| [<00000000f495e2bb>] genl_family_rcv_msg+0xe4/0x1f0 |
| [<00000000646c5c2c>] genl_rcv_msg+0x78/0x120 |
| [<00000000d53e384e>] netlink_rcv_skb+0x74/0x1a0 |
| |
| The Linux kernel CVE team has assigned CVE-2021-47438 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 3.11 with commit e126ba97dba9edeb6fafa3665b5f8497fc9cdf8c and fixed in 5.10.75 with commit 4f7bddf8c5c01cac74373443b13a68e1c6723a94 |
| Issue introduced in 3.11 with commit e126ba97dba9edeb6fafa3665b5f8497fc9cdf8c and fixed in 5.14.14 with commit ed8aafea4fec9c654e63445236e0b505e27ed3a7 |
| Issue introduced in 3.11 with commit e126ba97dba9edeb6fafa3665b5f8497fc9cdf8c and fixed in 5.15 with commit 94b960b9deffc02fc0747afc01f72cc62ab099e3 |
| |
| 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-2021-47438 |
| 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/net/ethernet/mellanox/mlx5/core/cq.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/4f7bddf8c5c01cac74373443b13a68e1c6723a94 |
| https://git.kernel.org/stable/c/ed8aafea4fec9c654e63445236e0b505e27ed3a7 |
| https://git.kernel.org/stable/c/94b960b9deffc02fc0747afc01f72cc62ab099e3 |