PT-2024-11497

CVE-2021-47590

·

Published

2021-12-14

·

Updated

2025-01-13

Description by

CVSS 3.1
5.5
Medium
MetricsAV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Name of the Vulnerable Software and Affected Versions Linux kernel (affected versions not specified)
Description The issue is related to a deadlock in the mptcp push pending() function, which may call mptcp flush join list() with the subflow socket lock held. If this call hits mptcp sockopt sync all(), then subsequently mptcp sockopt sync() could try to lock the subflow socket for itself, causing a deadlock. The sysrq shows a blocked state, and the call trace indicates the involvement of several functions, including schedule, lock sock, and mptcp sockopt sync all. The issue can be fixed by using mptcp flush join list() instead of plain mptcp flush join list() inside mptcp push pending(), as suggested by Florian, which defers the sockopt sync to the workqueue.
Recommendations To resolve the issue, use mptcp flush join list() instead of plain mptcp flush join list() inside mptcp push pending(). This change defers the sockopt sync to the workqueue, preventing the deadlock.
Note: Since the affected versions are not specified, it is recommended to apply this fix to all versions of the Linux kernel where the mptcp push pending() function is used.
Exploitability
Fix
Impacts
Vendors
Affected products
Related identifiers
CESA-2022_1975
CESA-2022_1988
OPENSUSE-SU-2024_2947-1
RHSA-2022:1975
RHSA-2022_1975
RHSA-2022:1988
RHSA-2022_1988
SUSE-SU-2024:2894-1
SUSE-SU-2024:2939-1
SUSE-SU-2024:2947-1
Found an issue in the description? Have something to add? Feel free to write us 👾