CVE-2025-71126CWE-362CWE-667

CVE-2025-71126

High · published January 14, 2026

CVSS v3.1
7.5
EPSS
0%
Percentile
17.5
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

mptcp: avoid deadlock on fallback while reinjecting

Jakub reported an MPTCP deadlock at fallback time:

WARNING: possible recursive locking detected

6.18.0-rc7-virtme #1 Not tainted

--------------------------------------------

mptcp_connect/20858 is trying to acquire lock:

ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_try_fallback+0xd8/0x280

but task is already holding lock:

ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0

other info that might help us debug this:

Possible unsafe locking scenario:

CPU0

----

lock(&msk->fallback_lock);

lock(&msk->fallback_lock);

*** DEADLOCK ***

May be due to missing lock nesting notation

3 locks held by mptcp_connect/20858:

#0: ff1100001da18290 (sk_lock-AF_INET){+.+.}-{0:0}, at: mptcp_sendmsg+0x114/0x1bc0

#1: ff1100001db40fd0 (k-sk_lock-AF_INET#2){+.+.}-{0:0}, at: __mptcp_retrans+0x2cb/0xaa0

#2: ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0

stack backtrace:

CPU: 0 UID: 0 PID: 20858 Comm: mptcp_connect Not tainted 6.18.0-rc7-virtme #1 PREEMPT(full)

Hardware name: Bochs, BIOS Bochs 01/01/2011

Call Trace:

<TASK>

dump_stack_lvl+0x6f/0xa0

print_deadlock_bug.cold+0xc0/0xcd

validate_chain+0x2ff/0x5f0

__lock_acquire+0x34c/0x740

lock_acquire.part.0+0xbc/0x260

_raw_spin_lock_bh+0x38/0x50

__mptcp_try_fallback+0xd8/0x280

mptcp_sendmsg_frag+0x16c2/0x3050

__mptcp_retrans+0x421/0xaa0

mptcp_release_cb+0x5aa/0xa70

release_sock+0xab/0x1d0

mptcp_sendmsg+0xd5b/0x1bc0

sock_write_iter+0x281/0x4d0

new_sync_write+0x3c5/0x6f0

vfs_write+0x65e/0xbb0

ksys_write+0x17e/0x200

do_syscall_64+0xbb/0xfd0

entry_SYSCALL_64_after_hwframe+0x4b/0x53

RIP: 0033:0x7fa5627cbc5e

Code: 4d 89 d8 e8 14 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa

RSP: 002b:00007fff1fe14700 EFLAGS: 00000202 ORIG_RAX: 0000000000000001

RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007fa5627cbc5e

RDX: 0000000000001f9c RSI: 00007fff1fe16984 RDI: 0000000000000005

RBP: 00007fff1fe14710 R08: 0000000000000000 R09: 0000000000000000

R10: 0000000000000000 R11: 0000000000000202 R12: 00007fff1fe16920

R13: 0000000000002000 R14: 0000000000001f9c R15: 0000000000001f9c

The packet scheduler could attempt a reinjection after receiving an

MP_FAIL and before the infinite map has been transmitted, causing a

deadlock since MPTCP needs to do the reinjection atomically from WRT

fallback.

Address the issue explicitly avoiding the reinjection in the critical

scenario. Note that this is the only fallback critical section that

could potentially send packets and hit the double-lock.

The record
Technical detail
CVSS v3.1
7.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00265 · 17.5th percentile
Weaknesses
CWE-362 · Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition'); CWE-667 · Improper Locking
Published
2026-01-14T20:16Z
Affected products (14)
ProductVersionsFixed in
linux/linux_kernel≥ 6.1.149, < 6.1.1606.1.160
linux/linux_kernel≥ 6.6.101, < 6.6.1206.6.120
linux/linux_kernel≥ 6.12.40, < 6.12.646.12.64
linux/linux_kernel≥ 6.15.8, < 6.166.16
linux/linux_kernel≥ 6.16.1, < 6.18.36.18.3
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (5)
EPSS history
Timeline
  • 14 JAN 15:06Z
    mptcp: avoid deadlock on fallback while reinjecting
    cvelistv5