CVE-2025-40258

mptcp: fix race condition in mptcp_schedule_work()

State
Published
Severity
9.8 Critical
Published
Dec 4, 2025
Updated
Aug 5, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

Description

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

mptcp: fix race condition in mptcp_schedule_work()

syzbot reported use-after-free in mptcp_schedule_work() [1]

Issue here is that mptcp_schedule_work() schedules a work, then gets a refcount on sk->sk_refcnt if the work was scheduled. This refcount will be released by mptcp_worker().

[A] if (schedule_work(...)) { [B] sock_hold(sk); return true; }

Problem is that mptcp_worker() can run immediately and complete before [B]

We need instead :

sock_hold(sk); if (schedule_work(...)) return true; sock_put(sk);

[1] refcount_t: addition on 0; use-after-free. WARNING: CPU: 1 PID: 29 at lib/refcount.c:25 refcount_warn_saturate+0xfa/0x1d0 lib/refcount.c:25 Call Trace: <TASK> __refcount_add include/linux/refcount.h:-1 [inline] __refcount_inc include/linux/refcount.h:366 [inline] refcount_inc include/linux/refcount.h:383 [inline] sock_hold include/net/sock.h:816 [inline] mptcp_schedule_work+0x164/0x1a0 net/mptcp/protocol.c:943 mptcp_tout_timer+0x21/0xa0 net/mptcp/protocol.c:2316 call_timer_fn+0x17e/0x5f0 kernel/time/timer.c:1747 expire_timers kernel/time/timer.c:1798 [inline] __run_timers kernel/time/timer.c:2372 [inline] __run_timer_base+0x648/0x970 kernel/time/timer.c:2384 run_timer_base kernel/time/timer.c:2393 [inline] run_timer_softirq+0xb7/0x180 kernel/time/timer.c:2403 handle_softirqs+0x22f/0x710 kernel/softirq.c:622 __do_softirq kernel/softirq.c:656 [inline] run_ktimerd+0xcf/0x190 kernel/softirq.c:1138 smpboot_thread_fn+0x542/0xa60 kernel/smpboot.c:160 kthread+0x711/0x8a0 kernel/kthread.c:463 ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

Scores

CVSSScoreVectorSource
3.19.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 3b1d6210a9577369103330b0d802b0bf74b65e7f to before f865e6595acf33083168db76921e66ace8bf0e5bAffected
  • 3b1d6210a9577369103330b0d802b0bf74b65e7f to before 99908e2d601236842d705d5fd04fb349577316f5Affected
  • 3b1d6210a9577369103330b0d802b0bf74b65e7f to before db4f7968a75250ca6c4ed70d0a78beabb2dcee18Affected
  • 3b1d6210a9577369103330b0d802b0bf74b65e7f to before 8f9ba1a99a89feef9b5867c15a0141a97e893309Affected
  • 3b1d6210a9577369103330b0d802b0bf74b65e7f to before ac28dfddedf6f209190950fc71bcff65ec4ab47bAffected
  • 3b1d6210a9577369103330b0d802b0bf74b65e7f to before 3fc7723ed01d1130d4bf7063c50e0af60ecccbb4Affected
  • 3b1d6210a9577369103330b0d802b0bf74b65e7f to before 035bca3f017ee9dea3a5a756e77a6f7138cc6eeaAffected
LinuxLinux
  • 5.7Affected
  • before 5.7Not affected
  • 5.10.247 through 5.10.*Not affected
  • 5.15.197 through 5.15.*Not affected
  • 6.1.159 through 6.1.*Not affected
  • 6.6.118 through 6.6.*Not affected
  • 6.12.60 through 6.12.*Not affected
  • 6.17.10 through 6.17.*Not affected
  • 6.18 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.