CVE-2021-47590·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: mptcp: fix deadlock in __mptcp_push_pending() __mptcp_push_pending() may call mptcp_flush_join_list() with subflow socket lock held. If such call hits mptcp_sockopt_sync_all() then subsequently __mptcp_sockopt_sync() could try to lock the subflow socket for itself, causing a deadlock. sysrq: Show Blocked State task:ss-server state:D stack: 0 pid: 938 ppid: 1 flags:0x00000000 Call Trace: <TASK> __schedule+0x2d6/0x10c0 ? __mod_memcg_state+0x4d/0x70 ? csum_partial+0xd/0x20 ? _raw_spin_lock_irqsave+0x26/0x50 schedule+0x4e/0xc0 __lock_sock+0x69/0x90 ? do_wait_intr_irq+0xa0/0xa0 __lock_sock_fast+0x35/0x50 mptcp_sockopt_sync_all+0x38/0xc0 __mptcp_push_pending+0x105/0x200 mptcp_sendmsg+0x466/0x490 sock_sendmsg+0x57/0x60 __sys_sendto+0xf0/0x160 ? do_wait_intr_irq+0xa0/0xa0 ? fpregs_restore_userregs+0x12/0xd0 __x64_sys_sendto+0x20/0x30 do_syscall_64+0x38/0x90 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f9ba546c2d0 RSP: 002b:00007ffdc3b762d8 EFLAGS: 00000246 ORIG_RAX: 000000000000002c RAX: ffffffffffffffda RBX: 00007f9ba56c8060 RCX: 00007f9ba546c2d0 RDX: 000000000000077a RSI: 0000000000e5e180 RDI: 0000000000000234 RBP: 0000000000cc57f0 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f9ba56c8060 R13: 0000000000b6ba60 R14: 0000000000cc7840 R15: 41d8685b1d7901b8 </TASK> Fix the issue by using __mptcp_flush_join_list() instead of plain mptcp_flush_join_list() inside __mptcp_push_pending(), as suggested by Florian. The sockopt sync will be deferred to the workqueue.
- Severity
- medium
- Software
- Kernel
- Fixed in
- 5.15.11
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at <0.1% — higher than 2% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Affected versions
From: 5.13
Until: 5.15.11
Fixed in: 5.15.11
How to fix this CVE
Update your Linux kernel to version 5.15.11 or later to resolve a deadlock condition in MPTCP's push-pending mechanism. This vulnerability affects kernel versions 5.13 through 5.15.10 and can cause system hangs when socket option synchronization conflicts with subflow locking. Apply the security patch immediately to prevent potential availability disruptions.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Check your current kernel version with: uname -r
- Verify if MPTCP is enabled in your kernel by running: grep MPTCP /boot/config-$(uname -r) | grep -E 'CONFIG_MPTCP|CONFIG_MPTCP_IPV6'
- Search system logs for deadlock signatures: sudo grep -i 'task.*state:D' /var/log/kern.log* or journalctl -u kernel --since '24 hours ago' | grep deadlock
- Confirm the patch is applied by checking: cat /proc/version and verifying kernel version is 5.15.11 or later
FAQ
What is CVE-2021-47590?
CVE-2021-47590 is a kernel deadlock vulnerability in MPTCP (Multipath TCP) where socket option synchronization can clash with subflow socket locking, causing the system to hang during message transmission.
Is CVE-2021-47590 being actively exploited?
No, this vulnerability is not listed as actively exploited in the CISA Known Exploited Vulnerabilities catalog, and no public exploits are currently available.
What versions of Kernel are affected by CVE-2021-47590?
Kernel versions 5.13 through 5.15.10 are vulnerable; version 5.15.11 and later contain the fix.
How do I check if my server is vulnerable to CVE-2021-47590?
Run 'uname -r' and check if your kernel version is between 5.13 and 5.15.10 inclusive, then verify MPTCP is enabled with 'grep CONFIG_MPTCP /boot/config-$(uname -r)'.
Does Defensia detect CVE-2021-47590?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2021-47590 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2021-47590. Free for 1 server.
Get started free