Skip to main content

CVE-2021-47595: Vulnerability in Linux Linux

High
VulnerabilityCVE-2021-47595cvecve-2021-47595
Published: Wed Jun 19 2024 (06/19/2024, 14:53:57 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: net/sched: sch_ets: don't remove idle classes from the round-robin list Shuang reported that the following script: 1) tc qdisc add dev ddd0 handle 10: parent 1: ets bands 8 strict 4 priomap 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 2) mausezahn ddd0 -A 10.10.10.1 -B 10.10.10.2 -c 0 -a own -b 00:c1:a0:c1:a0:00 -t udp & 3) tc qdisc change dev ddd0 handle 10: ets bands 4 strict 2 quanta 2500 2500 priomap 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 crashes systematically when line 2) is commented: list_del corruption, ffff8e028404bd30->next is LIST_POISON1 (dead000000000100) ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:47! invalid opcode: 0000 [#1] PREEMPT SMP NOPTI CPU: 0 PID: 954 Comm: tc Not tainted 5.16.0-rc4+ #478 Hardware name: Red Hat KVM, BIOS 1.11.1-4.module+el8.1.0+4066+0f1aadab 04/01/2014 RIP: 0010:__list_del_entry_valid.cold.1+0x12/0x47 Code: fe ff 0f 0b 48 89 c1 4c 89 c6 48 c7 c7 08 42 1b 87 e8 1d c5 fe ff 0f 0b 48 89 fe 48 89 c2 48 c7 c7 98 42 1b 87 e8 09 c5 fe ff <0f> 0b 48 c7 c7 48 43 1b 87 e8 fb c4 fe ff 0f 0b 48 89 f2 48 89 fe RSP: 0018:ffffae46807a3888 EFLAGS: 00010246 RAX: 000000000000004e RBX: 0000000000000007 RCX: 0000000000000202 RDX: 0000000000000000 RSI: ffffffff871ac536 RDI: 00000000ffffffff RBP: ffffae46807a3a10 R08: 0000000000000000 R09: c0000000ffff7fff R10: 0000000000000001 R11: ffffae46807a36a8 R12: ffff8e028404b800 R13: ffff8e028404bd30 R14: dead000000000100 R15: ffff8e02fafa2400 FS: 00007efdc92e4480(0000) GS:ffff8e02fb600000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000682f48 CR3: 00000001058be000 CR4: 0000000000350ef0 Call Trace: <TASK> ets_qdisc_change+0x58b/0xa70 [sch_ets] tc_modify_qdisc+0x323/0x880 rtnetlink_rcv_msg+0x169/0x4a0 netlink_rcv_skb+0x50/0x100 netlink_unicast+0x1a5/0x280 netlink_sendmsg+0x257/0x4d0 sock_sendmsg+0x5b/0x60 ____sys_sendmsg+0x1f2/0x260 ___sys_sendmsg+0x7c/0xc0 __sys_sendmsg+0x57/0xa0 do_syscall_64+0x3a/0x80 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7efdc8031338 Code: 89 02 48 c7 c0 ff ff ff ff eb b5 0f 1f 80 00 00 00 00 f3 0f 1e fa 48 8d 05 25 43 2c 00 8b 00 85 c0 75 17 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 58 c3 0f 1f 80 00 00 00 00 41 54 41 89 d4 55 RSP: 002b:00007ffdf1ce9828 EFLAGS: 00000246 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 0000000061b37a97 RCX: 00007efdc8031338 RDX: 0000000000000000 RSI: 00007ffdf1ce9890 RDI: 0000000000000003 RBP: 0000000000000000 R08: 0000000000000001 R09: 000000000078a940 R10: 000000000000000c R11: 0000000000000246 R12: 0000000000000001 R13: 0000000000688880 R14: 0000000000000000 R15: 0000000000000000 </TASK> Modules linked in: sch_ets sch_tbf dummy rfkill iTCO_wdt iTCO_vendor_support intel_rapl_msr intel_rapl_common joydev pcspkr i2c_i801 virtio_balloon i2c_smbus lpc_ich ip_tables xfs libcrc32c crct10dif_pclmul crc32_pclmul crc32c_intel serio_raw ghash_clmulni_intel ahci libahci libata virtio_blk virtio_console virtio_net net_failover failover sunrpc dm_mirror dm_region_hash dm_log dm_mod [last unloaded: sch_ets] ---[ end trace f35878d1912655c2 ]--- RIP: 0010:__list_del_entry_valid.cold.1+0x12/0x47 Code: fe ff 0f 0b 48 89 c1 4c 89 c6 48 c7 c7 08 42 1b 87 e8 1d c5 fe ff 0f 0b 48 89 fe 48 89 c2 48 c7 c7 98 42 1b 87 e8 09 c5 fe ff <0f> 0b 48 c7 c7 48 43 1b 87 e8 fb c4 fe ff 0f 0b 48 89 f2 48 89 fe RSP: 0018:ffffae46807a3888 EFLAGS: 00010246 RAX: 000000000000004e RBX: 0000000000000007 RCX: 0000000000000202 RDX: 0000000000000000 RSI: ffffffff871ac536 RDI: 00000000ffffffff RBP: ffffae46807a3a10 R08: 0000000000000000 R09: c0000000ffff7fff R10: 0000000000000001 R11: ffffae46807a36a8 R12: ffff8e028404b800 R13: ffff8e028404bd30 R14: dead000000000100 R15: ffff8e02fafa2400 FS: 00007efdc92e4480(0000) GS:ffff8e02fb600000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000000 ---truncated---

AI-Powered Analysis

AILast updated: 06/30/2025, 15:11:58 UTC

Technical Analysis

CVE-2021-47595 is a vulnerability identified in the Linux kernel's network scheduler component, specifically within the 'sch_ets' (Earliest TxTime Scheduler) module. The vulnerability arises from improper handling of idle classes in the round-robin list during queueing discipline (qdisc) operations. The issue manifests when the kernel attempts to remove idle classes from the round-robin list, leading to list corruption and ultimately causing a kernel crash (kernel BUG). The vulnerability can be triggered by manipulating traffic control (tc) commands, as demonstrated by the provided script that configures the 'ets' qdisc with specific parameters and then modifies it. The crash results from a corrupted linked list pointer, which is detected by the kernel's list debugging mechanism, leading to an invalid opcode exception and system panic. This vulnerability affects specific Linux kernel versions identified by commit hashes (ae2659d2c670252759ee9c823c4e039c0e05a6f2, e25bdbc7e951ae5728fee1f4c09485df113d013c, de6d25924c2a8c2988c6a385990cafbe742061bf). The vulnerability does not require user interaction but does require the ability to execute 'tc' commands, which typically necessitates administrative privileges. No known exploits are reported in the wild as of the publication date. The vulnerability was reported by a researcher named Shuang and has been addressed in recent kernel updates. The technical details indicate that the flaw is a logic error in the queueing discipline implementation that can lead to denial of service via kernel crash, impacting system availability.

Potential Impact

For European organizations, this vulnerability poses a risk primarily to systems running affected Linux kernel versions with the 'sch_ets' qdisc enabled or used. The impact is a denial of service condition caused by kernel crashes, which can disrupt network traffic management and potentially lead to system downtime. This is particularly critical for network infrastructure devices, servers, and virtualized environments relying on Linux for traffic shaping and quality of service (QoS) enforcement. Organizations in sectors such as telecommunications, cloud service providers, financial institutions, and critical infrastructure operators could experience service interruptions or degraded network performance. Since exploitation requires administrative privileges, the threat is more significant in environments where internal threat actors or compromised administrators exist. The lack of known exploits reduces immediate risk, but the vulnerability's presence in widely deployed Linux kernels means that unpatched systems remain vulnerable to accidental or deliberate triggering, potentially impacting operational continuity and availability of services.

Mitigation Recommendations

1. Immediate application of Linux kernel patches that address CVE-2021-47595 is the most effective mitigation. Organizations should monitor vendor advisories and update kernels to versions that include the fix. 2. Restrict access to 'tc' command execution to trusted administrators only, minimizing the risk of exploitation by unauthorized users. 3. Implement strict role-based access controls (RBAC) and auditing for network configuration changes to detect and prevent unauthorized attempts to manipulate qdisc settings. 4. For virtualized environments, ensure hypervisor and guest OS kernel versions are updated, as the vulnerability can affect KVM-based virtual machines. 5. Monitor system logs for kernel BUG messages or crashes related to 'sch_ets' to detect potential exploitation attempts or accidental triggers. 6. Consider disabling or avoiding use of the 'ets' qdisc if it is not required for network traffic management, reducing the attack surface. 7. Employ network segmentation and isolation to limit the impact of potential denial of service conditions caused by this vulnerability.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-05-24T15:11:00.733Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9833c4522896dcbe9550

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

Last enriched: 6/30/2025, 3:11:58 PM

Last updated: 8/12/2025, 6:47:17 AM

Views: 11

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