{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-22062", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-12-29T08:45:45.813Z", "datePublished": "2025-04-16T14:12:17.605Z", "dateUpdated": "2026-08-05T11:56:28.212Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:56:28.212Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: add mutual exclusion in proc_sctp_do_udp_port()\n\nWe must serialize calls to sctp_udp_sock_stop() and sctp_udp_sock_start()\nor risk a crash as syzbot reported:\n\nOops: general protection fault, probably for non-canonical address 0xdffffc000000000d: 0000 [#1] SMP KASAN PTI\nKASAN: null-ptr-deref in range [0x0000000000000068-0x000000000000006f]\nCPU: 1 UID: 0 PID: 6551 Comm: syz.1.44 Not tainted 6.14.0-syzkaller-g7f2ff7b62617 #0 PREEMPT(full)\nHardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025\n RIP: 0010:kernel_sock_shutdown+0x47/0x70 net/socket.c:3653\nCall Trace:\n \n udp_tunnel_sock_release+0x68/0x80 net/ipv4/udp_tunnel_core.c:181\n sctp_udp_sock_stop+0x71/0x160 net/sctp/protocol.c:930\n proc_sctp_do_udp_port+0x264/0x450 net/sctp/sysctl.c:553\n proc_sys_call_handler+0x3d0/0x5b0 fs/proc/proc_sysctl.c:601\n iter_file_splice_write+0x91c/0x1150 fs/splice.c:738\n do_splice_from fs/splice.c:935 [inline]\n direct_splice_actor+0x18f/0x6c0 fs/splice.c:1158\n splice_direct_to_actor+0x342/0xa30 fs/splice.c:1102\n do_splice_direct_actor fs/splice.c:1201 [inline]\n do_splice_direct+0x174/0x240 fs/splice.c:1227\n do_sendfile+0xafd/0xe50 fs/read_write.c:1368\n __do_sys_sendfile64 fs/read_write.c:1429 [inline]\n __se_sys_sendfile64 fs/read_write.c:1415 [inline]\n __x64_sys_sendfile64+0x1d8/0x220 fs/read_write.c:1415\n do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]" } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The only entry point is a write() (or sendfile()/splice()) to the procfs file /proc/sys/net/sctp/udp_port, handled by proc_sctp_do_udp_port(); no remote peer or network packet can reach this code path.\nAC:L - The attacker creates and controls both sides of the race by issuing two concurrent writes to the same sysctl, and the window spans udp_tunnel_sock_release()'s synchronize_rcu() — a millisecond-scale gap between reading net->sctp.udp4_sock and clearing it — making the double release trivially winnable.\nPR:L - The sysctl is per-netns and net_ctl_permissions() grants write access to CAP_NET_ADMIN in the netns's user_ns, which any unprivileged user obtains with `unshare -Urn`; the file is also owned by the ns root uid via net_ctl_set_ownership().\nUI:N - Exploitation is entirely self-contained in the attacker's own threads writing to a procfs file; no victim action or cooperation is required.\nS:U - The double free and subsequent memory corruption occur in kernel heap objects within the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The unserialized sctp_udp_sock_stop() releases the same struct socket twice, producing a use-after-free/double-iput on the socket_alloc slab plus a sock_put() refcount underflow, letting the attacker reallocate the freed object and read back kernel memory contents.\nI:H - The second thread executes kernel_sock_shutdown(), which performs an indirect call via READ_ONCE(sock->ops)->shutdown on the already-freed struct socket, giving a heap-spray-controlled function pointer and thus a control-flow hijack / arbitrary write primitive.\nA:H - The race reliably produces a kernel oops — syzbot reported a general protection fault (null-ptr-deref) in kernel_sock_shutdown() from sctp_udp_sock_stop() — and the double free/refcount underflow crashes or panics the kernel." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/sctp/sysctl.c" ], "versions": [ { "version": "046c052b475e7119b6a30e3483e2888fc606a2f8", "lessThan": "65ccb2793da7401772a3ffe85355c831b313c59f", "status": "affected", "versionType": "git" }, { "version": "046c052b475e7119b6a30e3483e2888fc606a2f8", "lessThan": "386507cb6fb7cdef598ddcb3f0fa37e6ca9e789d", "status": "affected", "versionType": "git" }, { "version": "046c052b475e7119b6a30e3483e2888fc606a2f8", "lessThan": "b3598f53211ba1025485306de2733bdd241311a3", "status": "affected", "versionType": "git" }, { "version": "046c052b475e7119b6a30e3483e2888fc606a2f8", "lessThan": "e5178bfc55b3a78000f0f8298e7ade88783ce581", "status": "affected", "versionType": "git" }, { "version": "046c052b475e7119b6a30e3483e2888fc606a2f8", "lessThan": "efb8cb487be8f4ba6aaef616011d702d6a083ed1", "status": "affected", "versionType": "git" }, { "version": "046c052b475e7119b6a30e3483e2888fc606a2f8", "lessThan": "d3d7675d77622f6ca1aae14c51f80027b36283f8", "status": "affected", "versionType": "git" }, { "version": "046c052b475e7119b6a30e3483e2888fc606a2f8", "lessThan": "10206302af856791fbcc27a33ed3c3eb09b2793d", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/sctp/sysctl.c" ], "versions": [ { "version": "5.11", "status": "affected" }, { "version": "0", "lessThan": "5.11", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.184", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.140", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.92", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.23", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.13.11", "lessThanOrEqual": "6.13.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.14.2", "lessThanOrEqual": "6.14.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.15", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.11", "versionEndExcluding": "5.15.184" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.11", "versionEndExcluding": "6.1.140" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.11", "versionEndExcluding": "6.6.92" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.11", "versionEndExcluding": "6.12.23" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.11", "versionEndExcluding": "6.13.11" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.11", "versionEndExcluding": "6.14.2" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.11", "versionEndExcluding": "6.15" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/65ccb2793da7401772a3ffe85355c831b313c59f" }, { "url": "https://git.kernel.org/stable/c/386507cb6fb7cdef598ddcb3f0fa37e6ca9e789d" }, { "url": "https://git.kernel.org/stable/c/b3598f53211ba1025485306de2733bdd241311a3" }, { "url": "https://git.kernel.org/stable/c/e5178bfc55b3a78000f0f8298e7ade88783ce581" }, { "url": "https://git.kernel.org/stable/c/efb8cb487be8f4ba6aaef616011d702d6a083ed1" }, { "url": "https://git.kernel.org/stable/c/d3d7675d77622f6ca1aae14c51f80027b36283f8" }, { "url": "https://git.kernel.org/stable/c/10206302af856791fbcc27a33ed3c3eb09b2793d" } ], "title": "sctp: add mutual exclusion in proc_sctp_do_udp_port()", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/08/msg00010.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T19:41:45.338Z" } } ] } }