CVE-2025-23145CWE-476

CVE-2025-23145

High · published May 1, 2025

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

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

mptcp: fix NULL pointer in can_accept_new_subflow

When testing valkey benchmark tool with MPTCP, the kernel panics in

'mptcp_can_accept_new_subflow' because subflow_req->msk is NULL.

Call trace:

mptcp_can_accept_new_subflow (./net/mptcp/subflow.c:63 (discriminator 4)) (P)

subflow_syn_recv_sock (./net/mptcp/subflow.c:854)

tcp_check_req (./net/ipv4/tcp_minisocks.c:863)

tcp_v4_rcv (./net/ipv4/tcp_ipv4.c:2268)

ip_protocol_deliver_rcu (./net/ipv4/ip_input.c:207)

ip_local_deliver_finish (./net/ipv4/ip_input.c:234)

ip_local_deliver (./net/ipv4/ip_input.c:254)

ip_rcv_finish (./net/ipv4/ip_input.c:449)

...

According to the debug log, the same req received two SYN-ACK in a very

short time, very likely because the client retransmits the syn ack due

to multiple reasons.

Even if the packets are transmitted with a relevant time interval, they

can be processed by the server on different CPUs concurrently). The

'subflow_req->msk' ownership is transferred to the subflow the first,

and there will be a risk of a null pointer dereference here.

This patch fixes this issue by moving the 'subflow_req->msk' under the

`own_req == true` conditional.

Note that the !msk check in subflow_hmac_valid() can be dropped, because

the same check already exists under the own_req mpj branch where the

code has been moved to.

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.00576 · 46.7th percentile
Weakness
CWE-476 · NULL Pointer Dereference
Published
2025-05-01T17:15Z
Affected products (8)
ProductVersionsFixed in
linux/linux_kernel≥ 5.9, < 5.10.2375.10.237
linux/linux_kernel≥ 5.11, < 5.15.1815.15.181
linux/linux_kernel≥ 5.16, < 6.1.1356.1.135
linux/linux_kernel≥ 6.2, < 6.6.886.6.88
linux/linux_kernel≥ 6.7, < 6.12.246.12.24
linux/linux_kernel≥ 6.13, < 6.13.126.13.12
linux/linux_kernel≥ 6.14, < 6.14.36.14.3
debian/debian_linuxall versions—
References (10)
EPSS history
Timeline
  • 01 MAY 12:55Z
    mptcp: fix NULL pointer in can_accept_new_subflow
    cvelistv5