CVE-2025-68227

Source
https://cve.org/CVERecord?id=CVE-2025-68227
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-68227.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2025-68227
Downstream
Related
Published
2025-12-16T13:57:20.027Z
Modified
2026-03-23T04:59:26.875074340Z
Summary
mptcp: Fix proto fallback detection with BPF
Details

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

mptcp: Fix proto fallback detection with BPF

The sockmap feature allows bpf syscall from userspace, or based on bpf sockops, replacing the skprot of sockets during protocol stack processing with sockmap's custom read/write interfaces. ''' tcprcvstateprocess() synrecvsock()/subflowsynrecvsock() tcpinittransfer(BPFSOCKOPSPASSIVEESTABLISHEDCB) bpfskopsestablished <== sockops bpfsockmapupdate(sk) <== call bpf helper tcpbpfupdateproto() <== update sk_prot '''

When the server has MPTCP enabled but the client sends a TCP SYN without MPTCP, subflowsynrecvsock() performs a fallback on the subflow, replacing the subflow sk's skprot with the native skprot. ''' subflowsynrecvsock() subflowulpfallback() subflowdropctx() mptcpsubflowopsundooverride() '''

Then, this subflow can be normally used by sockmap, which replaces the native skprot with sockmap's custom skprot. The issue occurs when the user executes accept::mptcpstreamaccept::mptcpfallbacktcpops(). Here, it uses sk->skprot to compare with the native skprot, but this is incorrect when sockmap is used, as we may incorrectly set sk->sksocket->ops.

This fix uses the more generic sk_family for the comparison instead.

Additionally, this also prevents a WARNING from occurring:

result from ./scripts/decodestacktrace.sh: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 337 at net/mptcp/protocol.c:68 mptcpstream_accept \ (net/mptcp/protocol.c:4005) Modules linked in: ...

PKRU: 55555554 Call Trace: <TASK> do_accept (net/socket.c:1989) __sys_accept4 (net/socket.c:2028 net/socket.c:2057) __x64sysaccept (net/socket.c:2067) x64syscall (arch/x86/entry/syscall64.c:41) dosyscall64 (arch/x86/entry/syscall64.c:63 arch/x86/entry/syscall64.c:94) entrySYSCALL64afterhwframe (arch/x86/entry/entry64.S:130) RIP: 0033:0x7f87ac92b83d

---[ end trace 0000000000000000 ]---

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/68xxx/CVE-2025-68227.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
0b4f33def7bbde1ce2fea05f116639270e7acdc7
Fixed
92c4092fe012ecdfa5fb05d394f1c1d8f91ad81c
Fixed
7ee8f015eb47907745e2070184a8ab1e442ac3c4
Fixed
344974ea1a3ca30e4920687b0091bda4438cebdb
Fixed
037cc50589643342d69185b663ecf9d26cce91e8
Fixed
9b1980b6f23fa30bf12add19f37c7458625099eb
Fixed
1a0d5c74af9b6ba9ffdf1172de5a1a6df5922a00
Fixed
c77b3b79a92e3345aa1ee296180d1af4e7031f8f

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-68227.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.7.0
Fixed
5.10.247
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.197
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.159
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.118
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.60
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.17.10

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-68227.json"