PT-2024-11497 · Linux+5 · Linux Kernel+5

Published

2021-12-14

·

Updated

2025-01-13

·

CVE-2021-47590

CVSS v3.1

5.5

Medium

VectorAV: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.

Fix

DoS

Improper Locking

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

BDU:2025-14248
CESA-2022_1975
CESA-2022_1988
CVE-2021-47590
OPENSUSE-SU-2024_2947-1
RHSA-2022:1975
RHSA-2022:1988
RHSA-2022_1975
RHSA-2022_1988
SUSE-SU-2024:2894-1
SUSE-SU-2024:2939-1
SUSE-SU-2024:2947-1

Affected Products

Astra Linux
Centos
Linux Kernel
Red Hat
Red Os
Suse