CVE-2025-23145: mptcp: fix NULL pointer in can_accept_new_subflow
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.
Security readout for executives and security teams
Plain-English summary
A race condition in Linux Multipath TCP can crash the kernel, causing a complete system outage. It can occur when duplicate connection traffic is processed concurrently. The published CVSS score is 7.5 because the issue is network-reachable, requires no privileges or user interaction, and primarily affects availability.
Executive priority
Treat this as a high-priority availability issue for exposed or business-critical MPTCP systems. Schedule vendor-approved kernel updates promptly, while using normal change controls because remediation generally requires replacing the running kernel and may require a reboot.
Technical view
Concurrent processing of repeated SYN-ACK traffic can transfer subflow_req->msk ownership during the first request, leaving it NULL for another CPU. mptcp_can_accept_new_subflow then dereferences the NULL pointer and panics. The upstream fix moves access to subflow_req->msk under the own_req condition.
Likely exposure
Exposure is most relevant to Linux systems accepting MPTCP connections. The bundle identifies affected kernel lines beginning with 5.9 and lists multiple stable-series versions through 6.15. Exact exposure depends on the running distribution kernel and whether its vendor has backported the fix.
Exploitation context
The CVSS vector describes network attackability with low complexity, no privileges, and no user interaction. The failure was reproduced during MPTCP testing, but the supplied sources provide no evidence of malicious exploitation. This CVE is not listed in CISA KEV.
Researcher notes
The described trigger involves repeated SYN-ACK handling for the same request, potentially across CPUs. The security consequence documented by the sources is NULL-pointer dereference and kernel panic, not confidentiality loss, integrity compromise, or code execution. No CWE is assigned in the supplied record.
Mitigation direction
Identify Linux hosts using or accepting MPTCP traffic.
Install a vendor-supported kernel containing the applicable upstream stable fix.
Prioritize internet-facing and availability-critical systems for maintenance.
Check distribution security advisories for backport status and reboot requirements.
Validation and detection
Record each host's running kernel version and distribution package revision.
Confirm whether MPTCP is enabled and reachable on relevant network interfaces.
Compare installed packages against vendor advisories and upstream stable fixes.
After updating and rebooting, verify the fixed kernel is running.
Monitor kernel logs for MPTCP-related NULL dereferences or panics.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-23145 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
11Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.