CVE-2024-36889
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
30/05/2024
Last modified:
17/12/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
mptcp: ensure snd_nxt is properly initialized on connect<br />
<br />
Christoph reported a splat hinting at a corrupted snd_una:<br />
<br />
WARNING: CPU: 1 PID: 38 at net/mptcp/protocol.c:1005 __mptcp_clean_una+0x4b3/0x620 net/mptcp/protocol.c:1005<br />
Modules linked in:<br />
CPU: 1 PID: 38 Comm: kworker/1:1 Not tainted 6.9.0-rc1-gbbeac67456c9 #59<br />
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2.el7 04/01/2014<br />
Workqueue: events mptcp_worker<br />
RIP: 0010:__mptcp_clean_una+0x4b3/0x620 net/mptcp/protocol.c:1005<br />
Code: be 06 01 00 00 bf 06 01 00 00 e8 a8 12 e7 fe e9 00 fe ff ff e8<br />
8e 1a e7 fe 0f b7 ab 3e 02 00 00 e9 d3 fd ff ff e8 7d 1a e7 fe<br />
0b 4c 8b bb e0 05 00 00 e9 74 fc ff ff e8 6a 1a e7 fe 0f 0b e9<br />
RSP: 0018:ffffc9000013fd48 EFLAGS: 00010293<br />
RAX: 0000000000000000 RBX: ffff8881029bd280 RCX: ffffffff82382fe4<br />
RDX: ffff8881003cbd00 RSI: ffffffff823833c3 RDI: 0000000000000001<br />
RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000<br />
R10: 0000000000000000 R11: fefefefefefefeff R12: ffff888138ba8000<br />
R13: 0000000000000106 R14: ffff8881029bd908 R15: ffff888126560000<br />
FS: 0000000000000000(0000) GS:ffff88813bd00000(0000) knlGS:0000000000000000<br />
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033<br />
CR2: 00007f604a5dae38 CR3: 0000000101dac002 CR4: 0000000000170ef0<br />
Call Trace:<br />
<br />
__mptcp_clean_una_wakeup net/mptcp/protocol.c:1055 [inline]<br />
mptcp_clean_una_wakeup net/mptcp/protocol.c:1062 [inline]<br />
__mptcp_retrans+0x7f/0x7e0 net/mptcp/protocol.c:2615<br />
mptcp_worker+0x434/0x740 net/mptcp/protocol.c:2767<br />
process_one_work+0x1e0/0x560 kernel/workqueue.c:3254<br />
process_scheduled_works kernel/workqueue.c:3335 [inline]<br />
worker_thread+0x3c7/0x640 kernel/workqueue.c:3416<br />
kthread+0x121/0x170 kernel/kthread.c:388<br />
ret_from_fork+0x44/0x50 arch/x86/kernel/process.c:147<br />
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243<br />
<br />
<br />
When fallback to TCP happens early on a client socket, snd_nxt<br />
is not yet initialized and any incoming ack will copy such value<br />
into snd_una. If the mptcp worker (dumbly) tries mptcp-level<br />
re-injection after such ack, that would unconditionally trigger a send<br />
buffer cleanup using &#39;bad&#39; snd_una values.<br />
<br />
We could easily disable re-injection for fallback sockets, but such<br />
dumb behavior already helped catching a few subtle issues and a very<br />
low to zero impact in practice.<br />
<br />
Instead address the issue always initializing snd_nxt (and write_seq,<br />
for consistency) at connect time.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.9 (including) | 5.10.218 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.159 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.91 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.31 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.8.10 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/39ca83ed73db9edcc6d70c0dc7a73085a4725012
- https://git.kernel.org/stable/c/592f69b41766d366dbb8ff4ef5a67c4396527bbe
- https://git.kernel.org/stable/c/99951b62bf20cec9247f633a3bea898338b9e5b4
- https://git.kernel.org/stable/c/aa0c07c1f20e05b30019bff083ec43665536f06f
- https://git.kernel.org/stable/c/dc941fec0719d0471a5902424d6b2a17df233193
- https://git.kernel.org/stable/c/fb7a0d334894206ae35f023a82cad5a290fd7386
- https://git.kernel.org/stable/c/39ca83ed73db9edcc6d70c0dc7a73085a4725012
- https://git.kernel.org/stable/c/592f69b41766d366dbb8ff4ef5a67c4396527bbe
- https://git.kernel.org/stable/c/99951b62bf20cec9247f633a3bea898338b9e5b4
- https://git.kernel.org/stable/c/aa0c07c1f20e05b30019bff083ec43665536f06f
- https://git.kernel.org/stable/c/dc941fec0719d0471a5902424d6b2a17df233193
- https://git.kernel.org/stable/c/fb7a0d334894206ae35f023a82cad5a290fd7386
- https://lists.debian.org/debian-lts-announce/2024/06/msg00019.html



