CVE-2021-47536·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: net/smc: fix wrong list_del in smc_lgr_cleanup_early smc_lgr_cleanup_early() meant to delete the link group from the link group list, but it deleted the list head by mistake. This may cause memory corruption since we didn't remove the real link group from the list and later memseted the link group structure. We got a list corruption panic when testing: [ 231.277259] list_del corruption. prev->next should be ffff8881398a8000, but was 0000000000000000 [ 231.278222] ------------[ cut here ]------------ [ 231.278726] kernel BUG at lib/list_debug.c:53! [ 231.279326] invalid opcode: 0000 [#1] SMP NOPTI [ 231.279803] CPU: 0 PID: 5 Comm: kworker/0:0 Not tainted 5.10.46+ #435 [ 231.280466] Hardware name: Alibaba Cloud ECS, BIOS 8c24b4c 04/01/2014 [ 231.281248] Workqueue: events smc_link_down_work [ 231.281732] RIP: 0010:__list_del_entry_valid+0x70/0x90 [ 231.282258] Code: 4c 60 82 e8 7d cc 6a 00 0f 0b 48 89 fe 48 c7 c7 88 4c 60 82 e8 6c cc 6a 00 0f 0b 48 89 fe 48 c7 c7 c0 4c 60 82 e8 5b cc 6a 00 <0f> 0b 48 89 fe 48 c7 c7 00 4d 60 82 e8 4a cc 6a 00 0f 0b cc cc cc [ 231.284146] RSP: 0018:ffffc90000033d58 EFLAGS: 00010292 [ 231.284685] RAX: 0000000000000054 RBX: ffff8881398a8000 RCX: 0000000000000000 [ 231.285415] RDX: 0000000000000001 RSI: ffff88813bc18040 RDI: ffff88813bc18040 [ 231.286141] RBP: ffffffff8305ad40 R08: 0000000000000003 R09: 0000000000000001 [ 231.286873] R10: ffffffff82803da0 R11: ffffc90000033b90 R12: 0000000000000001 [ 231.287606] R13: 0000000000000000 R14: ffff8881398a8000 R15: 0000000000000003 [ 231.288337] FS: 0000000000000000(0000) GS:ffff88813bc00000(0000) knlGS:0000000000000000 [ 231.289160] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 231.289754] CR2: 0000000000e72058 CR3: 000000010fa96006 CR4: 00000000003706f0 [ 231.290485] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 231.291211] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 231.291940] Call Trace: [ 231.292211] smc_lgr_terminate_sched+0x53/0xa0 [ 231.292677] smc_switch_conns+0x75/0x6b0 [ 231.293085] ? update_load_avg+0x1a6/0x590 [ 231.293517] ? ttwu_do_wakeup+0x17/0x150 [ 231.293907] ? update_load_avg+0x1a6/0x590 [ 231.294317] ? newidle_balance+0xca/0x3d0 [ 231.294716] smcr_link_down+0x50/0x1a0 [ 231.295090] ? __wake_up_common_lock+0x77/0x90 [ 231.295534] smc_link_down_work+0x46/0x60 [ 231.295933] process_one_work+0x18b/0x350
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.15.7
- Published
- 2024-05-24
Affected versions
From: 5.11
Until: 5.15.7
Fixed in: 5.15.7
How to fix this CVE
Update your Linux kernel to version 5.15.7 or later to fix a critical list management bug in the SMC (Shared Memory Communications) networking subsystem. This vulnerability can cause memory corruption and kernel panics when link groups are improperly removed from tracking lists. Applying the patch ensures proper cleanup of SMC link group structures without corrupting kernel memory.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check your kernel version with `uname -r` and compare against the affected range (5.11 to 5.15.6)
- Step 2: Verify SMC networking is enabled with `grep -i CONFIG_SMC /boot/config-$(uname -r)` (should show CONFIG_SMC=y or CONFIG_SMC=m)
- Step 3: Search system logs for list corruption panics: `sudo journalctl -b | grep -i 'list_del corruption'` or `sudo dmesg | grep -i 'list_del corruption'`
- Step 4: Confirm the kernel patch was applied by checking the kernel release date matches or exceeds December 2021: `uname -a`
FAQ
What is CVE-2021-47536?
This vulnerability is a logic error in the Linux kernel's SMC networking layer where the cleanup function deletes the wrong list node, leaving dangling references that corrupt kernel memory when the actual structure is overwritten.
Is CVE-2021-47536 being actively exploited?
No, this vulnerability is not listed on the CISA Known Exploited Vulnerabilities (KEV) catalog and no public exploits are available. However, it can be triggered by legitimate network events involving SMC link failures.
What versions of Kernel are affected by CVE-2021-47536?
Linux kernel versions 5.11 through 5.15.6 are vulnerable. The fix was released in kernel 5.15.7 and backported to stable branches.
How do I check if my server is vulnerable to CVE-2021-47536?
Run `uname -r` to get your kernel version. If it's between 5.11 and 5.15.6 and SMC is enabled (`grep CONFIG_SMC /boot/config-$(uname -r)`), your system is vulnerable.
Does Defensia detect CVE-2021-47536?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Kernel is installed on a monitored server, CVE-2021-47536 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/77731fede297a23d26f2d169b4269466b2c82529
- https://git.kernel.org/stable/c/789b6cc2a5f9123b9c549b886fdc47c865cfe0ba
- https://git.kernel.org/stable/c/95518fe354d712dca6f431cf2a11b8f63bc9a66c
- https://git.kernel.org/stable/c/77731fede297a23d26f2d169b4269466b2c82529
- https://git.kernel.org/stable/c/789b6cc2a5f9123b9c549b886fdc47c865cfe0ba
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2021-47536. Free for 1 server.
Get started free