Skip to main content

CVE-2021-47247: Vulnerability in Linux Linux

High
VulnerabilityCVE-2021-47247cvecve-2021-47247
Published: Tue May 21 2024 (05/21/2024, 14:19:44 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: Fix use-after-free of encap entry in neigh update handler Function mlx5e_rep_neigh_update() wasn't updated to accommodate rtnl lock removal from TC filter update path and properly handle concurrent encap entry insertion/deletion which can lead to following use-after-free: [23827.464923] ================================================================== [23827.469446] BUG: KASAN: use-after-free in mlx5e_encap_take+0x72/0x140 [mlx5_core] [23827.470971] Read of size 4 at addr ffff8881d132228c by task kworker/u20:6/21635 [23827.472251] [23827.472615] CPU: 9 PID: 21635 Comm: kworker/u20:6 Not tainted 5.13.0-rc3+ #5 [23827.473788] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 [23827.475639] Workqueue: mlx5e mlx5e_rep_neigh_update [mlx5_core] [23827.476731] Call Trace: [23827.477260] dump_stack+0xbb/0x107 [23827.477906] print_address_description.constprop.0+0x18/0x140 [23827.478896] ? mlx5e_encap_take+0x72/0x140 [mlx5_core] [23827.479879] ? mlx5e_encap_take+0x72/0x140 [mlx5_core] [23827.480905] kasan_report.cold+0x7c/0xd8 [23827.481701] ? mlx5e_encap_take+0x72/0x140 [mlx5_core] [23827.482744] kasan_check_range+0x145/0x1a0 [23827.493112] mlx5e_encap_take+0x72/0x140 [mlx5_core] [23827.494054] ? mlx5e_tc_tun_encap_info_equal_generic+0x140/0x140 [mlx5_core] [23827.495296] mlx5e_rep_neigh_update+0x41e/0x5e0 [mlx5_core] [23827.496338] ? mlx5e_rep_neigh_entry_release+0xb80/0xb80 [mlx5_core] [23827.497486] ? read_word_at_a_time+0xe/0x20 [23827.498250] ? strscpy+0xa0/0x2a0 [23827.498889] process_one_work+0x8ac/0x14e0 [23827.499638] ? lockdep_hardirqs_on_prepare+0x400/0x400 [23827.500537] ? pwq_dec_nr_in_flight+0x2c0/0x2c0 [23827.501359] ? rwlock_bug.part.0+0x90/0x90 [23827.502116] worker_thread+0x53b/0x1220 [23827.502831] ? process_one_work+0x14e0/0x14e0 [23827.503627] kthread+0x328/0x3f0 [23827.504254] ? _raw_spin_unlock_irq+0x24/0x40 [23827.505065] ? __kthread_bind_mask+0x90/0x90 [23827.505912] ret_from_fork+0x1f/0x30 [23827.506621] [23827.506987] Allocated by task 28248: [23827.507694] kasan_save_stack+0x1b/0x40 [23827.508476] __kasan_kmalloc+0x7c/0x90 [23827.509197] mlx5e_attach_encap+0xde1/0x1d40 [mlx5_core] [23827.510194] mlx5e_tc_add_fdb_flow+0x397/0xc40 [mlx5_core] [23827.511218] __mlx5e_add_fdb_flow+0x519/0xb30 [mlx5_core] [23827.512234] mlx5e_configure_flower+0x191c/0x4870 [mlx5_core] [23827.513298] tc_setup_cb_add+0x1d5/0x420 [23827.514023] fl_hw_replace_filter+0x382/0x6a0 [cls_flower] [23827.514975] fl_change+0x2ceb/0x4a51 [cls_flower] [23827.515821] tc_new_tfilter+0x89a/0x2070 [23827.516548] rtnetlink_rcv_msg+0x644/0x8c0 [23827.517300] netlink_rcv_skb+0x11d/0x340 [23827.518021] netlink_unicast+0x42b/0x700 [23827.518742] netlink_sendmsg+0x743/0xc20 [23827.519467] sock_sendmsg+0xb2/0xe0 [23827.520131] ____sys_sendmsg+0x590/0x770 [23827.520851] ___sys_sendmsg+0xd8/0x160 [23827.521552] __sys_sendmsg+0xb7/0x140 [23827.522238] do_syscall_64+0x3a/0x70 [23827.522907] entry_SYSCALL_64_after_hwframe+0x44/0xae [23827.523797] [23827.524163] Freed by task 25948: [23827.524780] kasan_save_stack+0x1b/0x40 [23827.525488] kasan_set_track+0x1c/0x30 [23827.526187] kasan_set_free_info+0x20/0x30 [23827.526968] __kasan_slab_free+0xed/0x130 [23827.527709] slab_free_freelist_hook+0xcf/0x1d0 [23827.528528] kmem_cache_free_bulk+0x33a/0x6e0 [23827.529317] kfree_rcu_work+0x55f/0xb70 [23827.530024] process_one_work+0x8ac/0x14e0 [23827.530770] worker_thread+0x53b/0x1220 [23827.531480] kthread+0x328/0x3f0 [23827.532114] ret_from_fork+0x1f/0x30 [23827.532785] [23827.533147] Last potentially related work creation: [23827.534007] kasan_save_stack+0x1b/0x40 [23827.534710] kasan_record_aux_stack+0xab/0xc0 [23827.535492] kvfree_call_rcu+0x31/0x7b0 [23827.536206] mlx5e_tc_del ---truncated---

AI-Powered Analysis

AILast updated: 06/26/2025, 14:36:23 UTC

Technical Analysis

CVE-2021-47247 is a use-after-free vulnerability identified in the Linux kernel's mlx5e driver, which is part of the Mellanox network driver stack (mlx5_core). The flaw exists in the function mlx5e_rep_neigh_update(), which handles neighbor updates related to encapsulation entries in the network stack. The vulnerability arises because this function was not updated to accommodate the removal of the rtnl lock from the traffic control (TC) filter update path. This omission leads to improper handling of concurrent insertion and deletion of encapsulation entries, resulting in a use-after-free condition. The kernel's Kernel Address Sanitizer (KASAN) detected this issue, showing that the driver attempts to access memory that has already been freed, causing potential memory corruption. The stack trace indicates that the issue occurs during workqueue processing related to network flow configuration and encapsulation management. Exploiting this vulnerability could allow an attacker with the ability to trigger TC filter updates or neighbor updates to cause a kernel crash (denial of service) or potentially execute arbitrary code in kernel space due to memory corruption. The vulnerability affects Linux kernel versions containing the mlx5e driver with the specified commit hashes, and it has been publicly disclosed without known exploits in the wild. No CVSS score has been assigned yet. The vulnerability is technical and specific to the Mellanox network driver used in Linux environments, particularly those utilizing advanced networking features such as tunneling and traffic control filters.

Potential Impact

For European organizations, the impact of CVE-2021-47247 can be significant, especially for enterprises and data centers relying on Linux servers with Mellanox network adapters or virtualized environments using mlx5e drivers. The vulnerability could lead to kernel crashes, causing service interruptions and potential denial of service in critical infrastructure, cloud services, and enterprise networks. In worst-case scenarios, if exploited for arbitrary code execution, attackers could gain elevated privileges, compromising system confidentiality and integrity. This risk is heightened in environments where network traffic control and encapsulation are heavily used, such as telecom operators, cloud providers, and financial institutions. The disruption of network services could affect business continuity and data security, leading to regulatory compliance issues under GDPR if personal data is impacted. However, exploitation requires local or network-level access to trigger specific kernel operations, limiting remote exploitation likelihood without prior access.

Mitigation Recommendations

European organizations should prioritize updating their Linux kernels to versions where this vulnerability is patched, as the fix involves correcting concurrency handling in the mlx5e driver. Specifically, they should: 1) Identify systems running affected Linux kernel versions with Mellanox mlx5e drivers, especially those using advanced networking features like TC filters and encapsulation. 2) Apply vendor-provided kernel patches or upgrade to the latest stable kernel releases that include the fix for CVE-2021-47247. 3) In virtualized or containerized environments, ensure host and guest kernels are updated to prevent cross-VM or container escape via this vulnerability. 4) Restrict access to systems capable of triggering TC filter updates to trusted administrators only, minimizing attack surface. 5) Monitor kernel logs for KASAN or mlx5e-related errors that may indicate exploitation attempts or instability. 6) Employ network segmentation and strict access controls to limit exposure of vulnerable systems. 7) Coordinate with hardware vendors for firmware updates or advisories related to Mellanox adapters. These steps go beyond generic patching by focusing on identifying affected network driver usage and controlling access to sensitive kernel operations.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-04-10T18:59:19.534Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9835c4522896dcbea1b3

Added to database: 5/21/2025, 9:09:09 AM

Last enriched: 6/26/2025, 2:36:23 PM

Last updated: 8/7/2025, 6:50:55 PM

Views: 12

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats