Cyber Posture

CVE-2022-49669

High

Published: 26 February 2025

Published
26 February 2025
Modified
24 March 2025
KEV Added
Patch
CVSS Score 7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
EPSS Score 0.0011 28.7th percentile
Risk Priority 16 60% EPSS · 20% KEV · 20% CVSS

Description

In the Linux kernel, the following vulnerability has been resolved: mptcp: fix race on unaccepted mptcp sockets When the listener socket owning the relevant request is closed, it frees the unaccepted subflows and that causes later deletion of the paired MPTCP sockets. The mptcp socket's worker can run in the time interval between such delete operations. When that happens, any access to msk->first will cause an UaF access, as the subflow cleanup did not cleared such field in the mptcp socket. Address the issue explicitly traversing the listener socket accept queue at close time and performing the needed cleanup on the pending msk. Note that the locking is a bit tricky, as we need to acquire the msk socket lock, while still owning the subflow socket one.

Security Summary

CVE-2022-49669 is a use-after-free vulnerability in the Linux kernel's Multipath TCP (MPTCP) implementation, arising from a race condition on unaccepted MPTCP sockets. When the listener socket owning a relevant request is closed, it frees the unaccepted subflows, which can lead to later deletion of paired MPTCP sockets. If the MPTCP socket's worker executes during this interval, it may access the freed msk->first field, resulting in a use-after-free condition. The vulnerability is classified under CWE-416 with a CVSS v3.1 base score of 7.8.

A local attacker with low privileges can exploit this vulnerability due to its low attack complexity and lack of user interaction requirements (AV:L/AC:L/PR:L/UI:N/S:U). Successful exploitation could grant high impacts on confidentiality, integrity, and availability (C:H/I:H/A:H), potentially allowing arbitrary code execution, data corruption, or system crashes via the use-after-free access.

Mitigation patches have been applied in the Linux kernel stable trees, as documented in kernel commit 6aeed9045071f2252ff4e98fc13d1e304f33e5b0 and a8a3e95c74e48c2c9b07b81fafda9122993f2e12. These commits address the issue by explicitly traversing the listener socket's accept queue at close time and performing cleanup on pending MPTCP sockets (msk). The fix handles tricky locking by acquiring the msk socket lock while still holding the subflow socket lock.

Details

CWE(s)
CWE-416

Affected Products

linux
linux kernel
5.19 · 5.17 — 5.18.10

References