CVE-2025-71126

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.
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTNIST
UNKNOWN
---
LinuxCNA
---
---
Base Score
CVSS 3.x
EPSS Score
Percentile: Unknown
Debian logo
Debian Releases
Debian Product
Codename
linux
bullseye
5.10.223-1
not-affected
bullseye (security)
5.10.247-1
fixed
bookworm
vulnerable
bookworm (security)
vulnerable
trixie
vulnerable
trixie (security)
vulnerable
forky
vulnerable
sid
6.18.3-1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
linux
questing
needs-triage
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
xenial
needs-triage
trusty
needs-triage
linux-hwe
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
xenial
needs-triage
linux-hwe-5.4
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-hwe-5.8
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-hwe-5.11
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-hwe-5.13
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-hwe-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-hwe-5.19
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-hwe-6.2
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-hwe-6.5
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-hwe-6.8
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-hwe-6.11
questing
dne
plucky
dne
noble
ignored
jammy
dne
linux-hwe-6.14
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-hwe-edge
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
xenial
ignored
linux-lts-xenial
questing
dne
plucky
dne
noble
dne
jammy
dne
trusty
needs-triage
linux-kvm
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
xenial
needs-triage
linux-allwinner-5.19
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-aws
questing
needs-triage
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
xenial
needs-triage
trusty
needs-triage
linux-aws-5.0
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-aws-5.3
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-aws-5.4
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-aws-5.8
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-aws-5.11
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-aws-5.13
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-aws-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-aws-5.19
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-aws-6.2
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-aws-6.5
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-aws-6.8
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-aws-6.14
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-aws-hwe
questing
dne
plucky
dne
noble
dne
jammy
dne
xenial
needs-triage
linux-azure
questing
needs-triage
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
ignored
xenial
needs-triage
trusty
needs-triage
linux-azure-4.15
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-azure-5.3
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-azure-5.4
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-azure-5.8
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-azure-5.11
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-azure-5.13
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-azure-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-azure-5.19
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-azure-6.2
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-azure-6.5
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-azure-6.8
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-azure-6.11
questing
dne
plucky
dne
noble
ignored
jammy
dne
linux-azure-6.14
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-azure-fde
questing
needs-triage
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
ignored
linux-azure-fde-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-azure-fde-5.19
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-azure-fde-6.2
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-azure-fde-6.8
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-azure-fde-6.14
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-azure-nvidia
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-azure-nvidia-6.14
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-bluefield
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-azure-edge
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-fips
questing
dne
plucky
dne
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
xenial
needs-triage
linux-aws-fips
questing
dne
plucky
dne
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
linux-azure-fips
questing
dne
plucky
dne
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
linux-gcp-fips
questing
dne
plucky
dne
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
linux-gcp
questing
needs-triage
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
ignored
xenial
needs-triage
linux-gcp-4.15
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-gcp-5.3
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-gcp-5.4
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-gcp-5.8
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-gcp-5.11
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-gcp-5.13
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-gcp-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-gcp-5.19
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-gcp-6.2
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-gcp-6.5
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-gcp-6.8
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-gcp-6.11
questing
dne
plucky
dne
noble
ignored
jammy
dne
linux-gcp-6.14
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-gke
questing
dne
plucky
dne
noble
needs-triage
jammy
needs-triage
focal
ignored
linux-gke-4.15
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-gke-5.4
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-gke-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-gkeop
questing
dne
plucky
dne
noble
needs-triage
jammy
needs-triage
focal
ignored
linux-gkeop-5.4
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-gkeop-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-ibm
questing
dne
plucky
dne
noble
needs-triage
jammy
needs-triage
focal
needs-triage
linux-ibm-5.4
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-ibm-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-ibm-6.8
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-intel-5.13
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-intel-iotg
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-intel-iotg-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-iot
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-intel-iot-realtime
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-lowlatency
questing
dne
plucky
dne
noble
needs-triage
jammy
needs-triage
linux-lowlatency-hwe-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-lowlatency-hwe-5.19
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-lowlatency-hwe-6.2
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-lowlatency-hwe-6.5
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-lowlatency-hwe-6.8
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-lowlatency-hwe-6.11
questing
dne
plucky
dne
noble
ignored
jammy
dne
linux-nvidia
questing
dne
plucky
dne
noble
needs-triage
jammy
needs-triage
linux-nvidia-6.2
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-nvidia-6.5
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-nvidia-6.8
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-nvidia-6.11
questing
dne
plucky
dne
noble
ignored
jammy
dne
linux-nvidia-lowlatency
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-nvidia-tegra
questing
dne
plucky
dne
noble
needs-triage
jammy
needs-triage
linux-nvidia-tegra-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-nvidia-tegra-igx
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-oracle
questing
needs-triage
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
xenial
needs-triage
linux-oracle-5.0
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-oracle-5.3
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-oracle-5.4
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-oracle-5.8
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oracle-5.11
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oracle-5.13
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oracle-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-oracle-6.5
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-oracle-6.8
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-oracle-6.14
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-oem
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-oem-5.6
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oem-5.10
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oem-5.13
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oem-5.14
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oem-5.17
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-oem-6.0
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-oem-6.1
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-oem-6.5
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-oem-6.8
questing
dne
plucky
dne
noble
ignored
jammy
dne
linux-oem-6.11
questing
dne
plucky
dne
noble
ignored
jammy
dne
linux-oem-6.14
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-oem-6.17
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-raspi
questing
needs-triage
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
needs-triage
linux-raspi2
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-raspi-5.4
questing
dne
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-raspi-realtime
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-realtime
questing
needs-triage
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
linux-realtime-6.8
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-realtime-6.14
questing
dne
plucky
dne
noble
needs-triage
jammy
dne
linux-riscv
questing
needs-triage
plucky
needs-triage
noble
ignored
jammy
ignored
focal
ignored
linux-riscv-5.8
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-riscv-5.11
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-riscv-5.15
questing
dne
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-riscv-5.19
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-riscv-6.5
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-riscv-6.8
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
linux-riscv-6.14
questing
dne
plucky
dne
noble
ignored
jammy
dne
linux-starfive-5.19
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-starfive-6.2
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-starfive-6.5
questing
dne
plucky
dne
noble
dne
jammy
ignored
linux-xilinx
questing
dne
plucky
needs-triage
noble
needs-triage
jammy
dne
linux-xilinx-zynqmp
questing
dne
plucky
dne
noble
dne
jammy
needs-triage
focal
needs-triage