CVE-2021-47199

In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: CT, Fix multiple allocations and memleak of mod acts CT clear action offload adds additional mod hdr actions to the flow's original mod actions in order to clear the registers which hold ct_state. When such flow also includes encap action, a neigh update event can cause the driver to unoffload the flow and then reoffload it. Each time this happens, the ct clear handling adds that same set of mod hdr actions to reset ct_state until the max of mod hdr actions is reached. Also the driver never releases the allocated mod hdr actions and causing a memleak. Fix above two issues by moving CT clear mod acts allocation into the parsing actions phase and only use it when offloading the rule. The release of mod acts will be done in the normal flow_put(). backtrace: [<000000007316e2f3>] krealloc+0x83/0xd0 [<00000000ef157de1>] mlx5e_mod_hdr_alloc+0x147/0x300 [mlx5_core] [<00000000970ce4ae>] mlx5e_tc_match_to_reg_set_and_get_id+0xd7/0x240 [mlx5_core] [<0000000067c5fa17>] mlx5e_tc_match_to_reg_set+0xa/0x20 [mlx5_core] [<00000000d032eb98>] mlx5_tc_ct_entry_set_registers.isra.0+0x36/0xc0 [mlx5_core] [<00000000fd23b869>] mlx5_tc_ct_flow_offload+0x272/0x1f10 [mlx5_core] [<000000004fc24acc>] mlx5e_tc_offload_fdb_rules.part.0+0x150/0x620 [mlx5_core] [<00000000dc741c17>] mlx5e_tc_encap_flows_add+0x489/0x690 [mlx5_core] [<00000000e92e49d7>] mlx5e_rep_update_flows+0x6e4/0x9b0 [mlx5_core] [<00000000f60f5602>] mlx5e_rep_neigh_update+0x39a/0x5d0 [mlx5_core]
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.16:rc1:*:*:*:*:*:*

History

14 Jan 2025, 16:40

Type Values Removed Values Added
CWE CWE-401
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
References () https://git.kernel.org/stable/c/486e8de6e233ff2999493533c6259d1cb538653b - () https://git.kernel.org/stable/c/486e8de6e233ff2999493533c6259d1cb538653b - Patch
References () https://git.kernel.org/stable/c/806401c20a0f9c51b6c8fd7035671e6ca841f6c2 - () https://git.kernel.org/stable/c/806401c20a0f9c51b6c8fd7035671e6ca841f6c2 - Patch
CPE cpe:2.3:o:linux:linux_kernel:5.16:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
First Time Linux
Linux linux Kernel

21 Nov 2024, 06:35

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/486e8de6e233ff2999493533c6259d1cb538653b - () https://git.kernel.org/stable/c/486e8de6e233ff2999493533c6259d1cb538653b -
References () https://git.kernel.org/stable/c/806401c20a0f9c51b6c8fd7035671e6ca841f6c2 - () https://git.kernel.org/stable/c/806401c20a0f9c51b6c8fd7035671e6ca841f6c2 -
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net/mlx5e: CT, corrige asignaciones múltiples y fuga de memoria de actos mod La descarga de la acción CT clear agrega acciones mod hdr adicionales a las acciones mod originales del flujo para borrar los registros que contienen ct_state. Cuando dicho flujo también incluye la acción encap, un evento de actualización vecinal puede hacer que el controlador descargue el flujo y luego lo vuelva a descargar. Cada vez que esto sucede, el manejo de ct clear agrega ese mismo conjunto de acciones mod hdr para restablecer ct_state hasta que se alcanza el máximo de acciones mod hdr. Además, el controlador nunca libera las acciones mod hdr asignadas y causa una fuga de memoria. Corrija los dos problemas anteriores moviendo la asignación de actos mod de CT clear a la fase de acciones de análisis y solo úselo al descargar la regla. La liberación de actos mod se realizará en el flow_put() normal. seguimiento inverso: [&lt;000000007316e2f3&gt;] krealloc+0x83/0xd0 [&lt;00000000ef157de1&gt;] mlx5e_mod_hdr_alloc+0x147/0x300 [mlx5_core] [&lt;00000000970ce4ae&gt;] mlx5e_tc_match_to_reg_set_and_get_id+0xd7/0x240 [mlx5_core] [&lt;0000000067c5fa17&gt;] mlx5e_tc_match_to_reg_set+0xa/0x20 [mlx5_core] [&lt;00000000d032eb98&gt;] mlx5_tc_ct_entry_set_registers.isra.0+0x36/0xc0 [mlx5_core] [&lt;00000000fd23b869&gt;] mlx5_tc_ct_flow_offload+0x272/0x1f10 [mlx5_core] [&lt;000000004fc24acc&gt;] mlx5e_tc_offload_fdb_rules.part.0+0x150/0x620 [mlx5_core] [&lt;00000000dc741c17&gt;] mlx5e_tc_encap_flows_add+0x489/0x690 [mlx5_core] [&lt;00000000e92e49d7&gt;] mlx5e_rep_actualización_flujos+0x6e4/0x9b0 [mlx5_core] [&lt;00000000f60f5602&gt;] mlx5e_rep_neigh_actualización+0x39a/0x5d0 [mlx5_core]

10 Apr 2024, 19:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-04-10 19:15

Updated : 2025-01-14 16:40


NVD link : CVE-2021-47199

Mitre link : CVE-2021-47199

CVE.ORG link : CVE-2021-47199


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-401

Missing Release of Memory after Effective Lifetime