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 &amp;#39;bad&amp;#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.

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:*:*:*:*:*:*:*