CVE-2025-39913

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

tcp_bpf: Call sk_msg_free() when tcp_bpf_send_verdict() fails to allocate psock->cork.

syzbot reported the splat below. [0]

The repro does the following:

  1. Load a sk_msg prog that calls bpf_msg_cork_bytes(msg, cork_bytes)
  2. Attach the prog to a SOCKMAP
  3. Add a socket to the SOCKMAP
  4. Activate fault injection
  5. Send data less than cork_bytes

At 5., the data is carried over to the next sendmsg() as it is
smaller than the cork_bytes specified by bpf_msg_cork_bytes().

Then, tcp_bpf_send_verdict() tries to allocate psock->cork to hold
the data, but this fails silently due to fault injection + __GFP_NOWARN.

If the allocation fails, we need to revert the sk->sk_forward_alloc
change done by sk_msg_alloc().

Let's call sk_msg_free() when tcp_bpf_send_verdict fails to allocate
psock->cork.

The "*copied" also needs to be updated such that a proper error can
be returned to the caller, sendmsg. It fails to allocate psock->cork.
Nothing has been corked so far, so this patch simply sets "*copied"
to 0.

[0]:
WARNING: net/ipv4/af_inet.c:156 at inet_sock_destruct+0x623/0x730 net/ipv4/af_inet.c:156, CPU#1: syz-executor/5983
Modules linked in:
CPU: 1 UID: 0 PID: 5983 Comm: syz-executor Not tainted syzkaller #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
RIP: 0010:inet_sock_destruct+0x623/0x730 net/ipv4/af_inet.c:156
Code: 0f 0b 90 e9 62 fe ff ff e8 7a db b5 f7 90 0f 0b 90 e9 95 fe ff ff e8 6c db b5 f7 90 0f 0b 90 e9 bb fe ff ff e8 5e db b5 f7 90 <0f> 0b 90 e9 e1 fe ff ff 89 f9 80 e1 07 80 c1 03 38 c1 0f 8c 9f fc
RSP: 0018:ffffc90000a08b48 EFLAGS: 00010246
RAX: ffffffff8a09d0b2 RBX: dffffc0000000000 RCX: ffff888024a23c80
RDX: 0000000000000100 RSI: 0000000000000fff RDI: 0000000000000000
RBP: 0000000000000fff R08: ffff88807e07c627 R09: 1ffff1100fc0f8c4
R10: dffffc0000000000 R11: ffffed100fc0f8c5 R12: ffff88807e07c380
R13: dffffc0000000000 R14: ffff88807e07c60c R15: 1ffff1100fc0f872
FS:  00005555604c4500(0000) GS:ffff888125af1000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005555604df5c8 CR3: 0000000032b06000 CR4: 00000000003526f0
Call Trace:
 <IRQ>
 __sk_destruct+0x86/0x660 net/core/sock.c:2339
 rcu_do_batch kernel/rcu/tree.c:2605 [inline]
 rcu_core+0xca8/0x1770 kernel/rcu/tree.c:2861
 handle_softirqs+0x286/0x870 kernel/softirq.c:579
 __do_softirq kernel/softirq.c:613 [inline]
 invoke_softirq kernel/softirq.c:453 [inline]
 __irq_exit_rcu+0xca/0x1f0 kernel/softirq.c:680
 irq_exit_rcu+0x9/0x30 kernel/softirq.c:696
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1052 [inline]
 sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1052
 </IRQ>
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTNIST
UNKNOWN
---
LinuxCNA
---
---
CVEADP
---
---
Awaiting analysis
This vulnerability is currently awaiting analysis.
Base Score
CVSS 3.x
EPSS Score
Percentile: 14%
Debian logo
Debian Releases
Debian Product
Codename
linux
bullseye
vulnerable
bullseye (security)
vulnerable
bookworm
vulnerable
bookworm (security)
6.1.158-1
fixed
trixie
6.12.57-1
fixed
trixie (security)
6.12.48-1
fixed
forky
6.16.12-2
fixed
sid
6.17.8-1
fixed
linux-6.1
bullseye (security)
6.1.153-1~deb11u1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
linux
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
xenial
needs-triage
trusty
needs-triage
linux-hwe
plucky
dne
noble
dne
jammy
dne
bionic
ignored
xenial
needs-triage
linux-hwe-5.4
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-hwe-5.8
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-hwe-5.11
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-hwe-5.13
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-hwe-5.15
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-hwe-5.19
plucky
dne
noble
dne
jammy
ignored
linux-hwe-6.2
plucky
dne
noble
dne
jammy
ignored
linux-hwe-6.5
plucky
dne
noble
dne
jammy
ignored
linux-hwe-6.8
plucky
dne
noble
dne
jammy
needs-triage
linux-hwe-6.11
plucky
dne
noble
ignored
jammy
dne
linux-hwe-6.14
plucky
dne
noble
needs-triage
jammy
dne
linux-hwe-edge
plucky
dne
noble
dne
jammy
dne
bionic
ignored
xenial
ignored
linux-lts-xenial
plucky
dne
noble
dne
jammy
dne
trusty
needs-triage
linux-kvm
plucky
dne
noble
dne
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
xenial
needs-triage
linux-allwinner-5.19
plucky
dne
noble
dne
jammy
ignored
linux-aws
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
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-aws-5.3
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-aws-5.4
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-aws-5.8
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-aws-5.11
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-aws-5.13
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-aws-5.15
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-aws-5.19
plucky
dne
noble
dne
jammy
ignored
linux-aws-6.2
plucky
dne
noble
dne
jammy
ignored
linux-aws-6.5
plucky
dne
noble
dne
jammy
ignored
linux-aws-6.8
plucky
dne
noble
dne
jammy
needs-triage
linux-aws-6.14
plucky
dne
noble
needs-triage
jammy
dne
linux-aws-hwe
plucky
dne
noble
dne
jammy
dne
xenial
needs-triage
linux-azure
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
ignored
xenial
needs-triage
trusty
needs-triage
linux-azure-4.15
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-azure-5.3
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-azure-5.4
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-azure-5.8
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-azure-5.11
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-azure-5.13
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-azure-5.15
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-azure-5.19
plucky
dne
noble
dne
jammy
ignored
linux-azure-6.2
plucky
dne
noble
dne
jammy
ignored
linux-azure-6.5
plucky
dne
noble
dne
jammy
ignored
linux-azure-6.8
plucky
dne
noble
dne
jammy
needs-triage
linux-azure-6.11
plucky
dne
noble
ignored
jammy
dne
linux-azure-fde
plucky
needs-triage
noble
dne
jammy
needs-triage
focal
ignored
linux-azure-fde-5.15
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-azure-fde-5.19
plucky
dne
noble
dne
jammy
ignored
linux-azure-fde-6.2
plucky
dne
noble
dne
jammy
ignored
linux-azure-nvidia
plucky
dne
noble
needs-triage
jammy
dne
linux-bluefield
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-azure-edge
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-fips
plucky
dne
noble
dne
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
xenial
needs-triage
linux-aws-fips
plucky
dne
noble
dne
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
linux-azure-fips
plucky
dne
noble
dne
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
linux-gcp-fips
plucky
dne
noble
dne
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
linux-gcp
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
ignored
xenial
needs-triage
linux-gcp-4.15
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-gcp-5.3
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-gcp-5.4
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-gcp-5.8
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-gcp-5.11
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-gcp-5.13
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-gcp-5.15
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-gcp-5.19
plucky
dne
noble
dne
jammy
ignored
linux-gcp-6.2
plucky
dne
noble
dne
jammy
ignored
linux-gcp-6.5
plucky
dne
noble
dne
jammy
ignored
linux-gcp-6.8
plucky
dne
noble
dne
jammy
needs-triage
linux-gcp-6.11
plucky
dne
noble
ignored
jammy
dne
linux-gcp-6.14
plucky
dne
noble
needs-triage
jammy
dne
linux-gke
plucky
dne
noble
needs-triage
jammy
needs-triage
focal
ignored
linux-gke-4.15
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-gke-5.4
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-gke-5.15
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-gkeop
plucky
dne
noble
needs-triage
jammy
needs-triage
focal
ignored
linux-gkeop-5.4
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-gkeop-5.15
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-ibm
plucky
dne
noble
needs-triage
jammy
needs-triage
focal
needs-triage
linux-ibm-5.4
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-ibm-5.15
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-ibm-6.8
plucky
dne
noble
dne
jammy
needs-triage
linux-intel-5.13
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-intel-iotg
plucky
dne
noble
dne
jammy
needs-triage
linux-intel-iotg-5.15
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-iot
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-intel-iot-realtime
plucky
dne
noble
dne
jammy
needs-triage
linux-lowlatency
plucky
dne
noble
needs-triage
jammy
needs-triage
linux-lowlatency-hwe-5.15
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-lowlatency-hwe-5.19
plucky
dne
noble
dne
jammy
ignored
linux-lowlatency-hwe-6.2
plucky
dne
noble
dne
jammy
ignored
linux-lowlatency-hwe-6.5
plucky
dne
noble
dne
jammy
ignored
linux-lowlatency-hwe-6.8
plucky
dne
noble
dne
jammy
needs-triage
linux-lowlatency-hwe-6.11
plucky
dne
noble
ignored
jammy
dne
linux-nvidia
plucky
dne
noble
needs-triage
jammy
needs-triage
linux-nvidia-6.2
plucky
dne
noble
dne
jammy
ignored
linux-nvidia-6.5
plucky
dne
noble
dne
jammy
ignored
linux-nvidia-6.8
plucky
dne
noble
dne
jammy
needs-triage
linux-nvidia-6.11
plucky
dne
noble
needs-triage
jammy
dne
linux-nvidia-lowlatency
plucky
dne
noble
needs-triage
jammy
dne
linux-nvidia-tegra
plucky
dne
noble
needs-triage
jammy
needs-triage
linux-nvidia-tegra-5.15
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-nvidia-tegra-igx
plucky
dne
noble
dne
jammy
needs-triage
linux-oracle
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
needs-triage
bionic
needs-triage
xenial
needs-triage
linux-oracle-5.0
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-oracle-5.3
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-oracle-5.4
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-oracle-5.8
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oracle-5.11
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oracle-5.13
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oracle-5.15
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-oracle-6.5
plucky
dne
noble
dne
jammy
ignored
linux-oracle-6.8
plucky
dne
noble
dne
jammy
needs-triage
linux-oracle-6.14
plucky
dne
noble
needs-triage
jammy
dne
linux-oem
plucky
dne
noble
dne
jammy
dne
bionic
ignored
linux-oem-5.6
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oem-5.10
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oem-5.13
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oem-5.14
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-oem-5.17
plucky
dne
noble
dne
jammy
ignored
linux-oem-6.0
plucky
dne
noble
dne
jammy
ignored
linux-oem-6.1
plucky
dne
noble
dne
jammy
ignored
linux-oem-6.5
plucky
dne
noble
dne
jammy
ignored
linux-oem-6.8
plucky
dne
noble
needs-triage
jammy
dne
linux-oem-6.11
plucky
dne
noble
needs-triage
jammy
dne
linux-oem-6.14
plucky
dne
noble
needs-triage
jammy
dne
linux-raspi
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
focal
needs-triage
linux-raspi2
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-raspi-5.4
plucky
dne
noble
dne
jammy
dne
bionic
needs-triage
linux-raspi-realtime
plucky
dne
noble
needs-triage
jammy
dne
linux-realtime
plucky
needs-triage
noble
needs-triage
jammy
needs-triage
linux-realtime-6.8
plucky
dne
noble
dne
jammy
needs-triage
linux-realtime-6.14
plucky
dne
noble
needs-triage
jammy
dne
linux-riscv
plucky
needs-triage
noble
ignored
jammy
ignored
focal
ignored
linux-riscv-5.8
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-riscv-5.11
plucky
dne
noble
dne
jammy
dne
focal
ignored
linux-riscv-5.15
plucky
dne
noble
dne
jammy
dne
focal
needs-triage
linux-riscv-5.19
plucky
dne
noble
dne
jammy
ignored
linux-riscv-6.5
plucky
dne
noble
dne
jammy
ignored
linux-riscv-6.8
plucky
dne
noble
dne
jammy
needs-triage
linux-riscv-6.14
plucky
dne
noble
needs-triage
jammy
dne
linux-starfive-5.19
plucky
dne
noble
dne
jammy
ignored
linux-starfive-6.2
plucky
dne
noble
dne
jammy
ignored
linux-starfive-6.5
plucky
dne
noble
dne
jammy
ignored
linux-xilinx-zynqmp
plucky
dne
noble
dne
jammy
needs-triage
focal
needs-triage