Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2021-47590— mptcp: fix deadlock in __mptcp_push_pending()

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于__mptcp_push_pending函数中存在死锁问题。

AI Predicted 4.3 Difficulty: Easy EPSS 0.16% · P4

Possible ATT&CK Techniques 1 AI

T1055 · Process Injection

Affected Version Matrix 6

VendorProduct Version RangeStatus
Linux Linux 1b3e7ede1365a24db1b4fd837e58a595f52fa4ad< 23311b92755ffa9087332d1bb8c71c0f6a10cc08 affected
1b3e7ede1365a24db1b4fd837e58a595f52fa4ad< 3d79e3756ca90f7a6087b77b62c1d9c0801e0820 affected
5.13 affected
< 5.13 unaffected
5.15.11≤ 5.15.* unaffected
5.16≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2021-47590

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
mptcp: fix deadlock in __mptcp_push_pending()
Source: CVE Program / CVE List V5
Vulnerability Description
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.
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于__mptcp_push_pending函数中存在死锁问题。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 1b3e7ede1365a24db1b4fd837e58a595f52fa4ad ~ 23311b92755ffa9087332d1bb8c71c0f6a10cc08 -
Linux Linux 5.13 -

II. Public POCs for CVE-2021-47590

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2021-47590

请登录查看更多情报信息。

Other References for CVE-2021-47590 (2)

Same Patch Batch · Linux · 2024-06-19 · 122 CVEs total

CVE-2024-38558 10.0 CRITICAL net: openvswitch: fix overwriting ct original tuple for ICMPv6
CVE-2024-38570 9.8 CRITICAL gfs2: Fix potential glock use-after-free on unmount
CVE-2021-47587 9.8 CRITICAL net: systemport: Add global locking for descriptor lifecycle
CVE-2024-38544 9.8 CRITICAL RDMA/rxe: Fix seg fault in rxe_comp_queue_pkt
CVE-2021-47611 8.1 HIGH mac80211: validate extended element ID is present
CVE-2024-38587 7.8 HIGH speakup: Fix sizeof() vs ARRAY_SIZE() bug
CVE-2024-38556 7.8 HIGH net/mlx5: Add a timeout to acquire the command queue semaphore
CVE-2024-38610 7.8 HIGH drivers/virt/acrn: fix PFNMAP PTE checks in acrn_vm_ram_map()
CVE-2024-38605 7.8 HIGH ALSA: core: Fix NULL module pointer assignment at card init
CVE-2024-38599 7.8 HIGH jffs2: prevent xattr node from overflowing the eraseblock
CVE-2024-38592 7.8 HIGH drm/mediatek: Init `ddp_comp` with devm_kcalloc()
CVE-2024-38564 7.8 HIGH bpf: Add BPF_PROG_TYPE_CGROUP_SKB attach type enforcement in BPF_LINK_CREATE
CVE-2024-38568 7.8 HIGH drivers/perf: hisi: hns3: Fix out-of-bound access when valid event group
CVE-2024-38572 7.8 HIGH wifi: ath12k: fix out-of-bound access of qmi_invoke_handler()
CVE-2024-38578 7.8 HIGH ecryptfs: Fix buffer size for tag 66 packet
CVE-2024-38580 7.8 HIGH epoll: be better about file lifetimes
CVE-2024-38569 7.8 HIGH drivers/perf: hisi_pcie: Fix out-of-bound access when valid event group
CVE-2024-38583 7.8 HIGH nilfs2: fix use-after-free of timer for log writer thread
CVE-2024-38614 7.8 HIGH openrisc: traps: Don't send signals to kernel mode threads
CVE-2024-38588 7.8 HIGH ftrace: Fix possible use-after-free issue in ftrace_location()

Showing top 20 of 122 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2021-47590

No comments yet


Leave a comment