{"id":"CVE-2026-23169","state":"PUBLISHED","title":"mptcp: fix race in mptcp_pm_nl_flush_addrs_doit()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: fix race in mptcp_pm_nl_flush_addrs_doit()\n\nsyzbot and Eulgyu Kim reported crashes in mptcp_pm_nl_get_local_id()\nand/or mptcp_pm_nl_is_backup()\n\nRoot cause is list_splice_init() in mptcp_pm_nl_flush_addrs_doit()\nwhich is not RCU ready.\n\nlist_splice_init_rcu() can not be called here while holding pernet->lock\nspinlock.\n\nMany thanks to Eulgyu Kim for providing a repro and testing our patches.","publishedAt":"2026-02-14T16:01:32.139Z","updatedAt":"2026-08-05T12:20:24.946Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"338d40bab283da2639780ee3e458fb61f1567d8c","versionType":"git"},{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"7896dbe990d56d5bb8097863b2645355633665eb","versionType":"git"},{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"455e882192c9833f176f3fbbbb2f036b6c5bf555","versionType":"git"},{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"51223bdd0f60b06cfc7f25885c4d4be917adba94","versionType":"git"},{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"1f1b9523527df02685dde603f20ff6e603d8e4a1","versionType":"git"},{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"e2a9eeb69f7d4ca4cf4c70463af77664fdb6ab1d","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/mptcp/pm_kernel.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.11","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.11","versionType":"semver"},{"version":"5.15.201","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.164","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.125","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.72","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.9","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/mptcp/pm_kernel.c"]}],"references":["https://git.kernel.org/stable/c/338d40bab283da2639780ee3e458fb61f1567d8c","https://git.kernel.org/stable/c/7896dbe990d56d5bb8097863b2645355633665eb","https://git.kernel.org/stable/c/455e882192c9833f176f3fbbbb2f036b6c5bf555","https://git.kernel.org/stable/c/51223bdd0f60b06cfc7f25885c4d4be917adba94","https://git.kernel.org/stable/c/1f1b9523527df02685dde603f20ff6e603d8e4a1","https://git.kernel.org/stable/c/e2a9eeb69f7d4ca4cf4c70463af77664fdb6ab1d"],"weaknesses":[],"ingestedAt":"2026-10-29T20:11:21.040Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/23xxx/CVE-2026-23169.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-23169","state":"PUBLISHED","datePublished":"2026-02-14T16:01:32.139Z","dateUpdated":"2026-08-05T12:20:24.946Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-01-13T15:37:45.982Z"},"containers":{"cna":{"title":"mptcp: fix race in mptcp_pm_nl_flush_addrs_doit()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: fix race in mptcp_pm_nl_flush_addrs_doit()\n\nsyzbot and Eulgyu Kim reported crashes in mptcp_pm_nl_get_local_id()\nand/or mptcp_pm_nl_is_backup()\n\nRoot cause is list_splice_init() in mptcp_pm_nl_flush_addrs_doit()\nwhich is not RCU ready.\n\nlist_splice_init_rcu() can not be called here while holding pernet->lock\nspinlock.\n\nMany thanks to Eulgyu Kim for providing a repro and testing our patches."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"338d40bab283da2639780ee3e458fb61f1567d8c","versionType":"git"},{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"7896dbe990d56d5bb8097863b2645355633665eb","versionType":"git"},{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"455e882192c9833f176f3fbbbb2f036b6c5bf555","versionType":"git"},{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"51223bdd0f60b06cfc7f25885c4d4be917adba94","versionType":"git"},{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"1f1b9523527df02685dde603f20ff6e603d8e4a1","versionType":"git"},{"version":"141694df6573b49aa4143c92556544b4b0bbda72","status":"affected","lessThan":"e2a9eeb69f7d4ca4cf4c70463af77664fdb6ab1d","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/mptcp/pm_kernel.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.11","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.11","versionType":"semver"},{"version":"5.15.201","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.164","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.125","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.72","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.9","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/mptcp/pm_kernel.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/338d40bab283da2639780ee3e458fb61f1567d8c"},{"url":"https://git.kernel.org/stable/c/7896dbe990d56d5bb8097863b2645355633665eb"},{"url":"https://git.kernel.org/stable/c/455e882192c9833f176f3fbbbb2f036b6c5bf555"},{"url":"https://git.kernel.org/stable/c/51223bdd0f60b06cfc7f25885c4d4be917adba94"},{"url":"https://git.kernel.org/stable/c/1f1b9523527df02685dde603f20ff6e603d8e4a1"},{"url":"https://git.kernel.org/stable/c/e2a9eeb69f7d4ca4cf4c70463af77664fdb6ab1d"}],"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 vulnerability requires a local attacker to send a netlink MPTCP_PM_CMD_FLUSH_ADDRS command, which requires CAP_NET_ADMIN (accessible via user namespaces but still local access). The RCU reader side can be triggered by network MPTCP connections, but the flush side requires local netlink access.\nAC:L - The attacker controls both sides of the race — they can issue the netlink flush command while simultaneously establishing MPTCP connections that trigger RCU list traversal. Since the attacker creates and controls the race condition, complexity is low.\nPR:L - The flush_addrs netlink operation uses GENL_UNS_ADMIN_PERM, which checks CAP_NET_ADMIN in the user namespace via netlink_ns_capable(). An unprivileged user can obtain this capability through user namespaces (unshare -Urn).\nUI:N - No user interaction is required. The attacker can trigger both the netlink flush and the MPTCP connection processing independently without any victim action.\nS:U - The vulnerability exists within the kernel and impacts the same security context. There is no crossing of a virtualization or sandbox boundary.\nC:H - This is a use-after-free / list corruption bug where RCU readers access freed mptcp_pm_addr_entry structures. UAF gives the attacker control over freed object contents via heap spraying, enabling arbitrary kernel memory reads.\nI:H - The use-after-free on mptcp_pm_addr_entry structures (which contain function-relevant pointers and a socket pointer) can be exploited via heap spraying to achieve arbitrary write primitives and potentially control flow hijacking.\nA:H - The corrupted list pointers and use-after-free reliably cause kernel crashes (oops/panic) as reported by syzbot, providing a straightforward denial-of-service vector."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:20:24.946Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"5.15.201"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"6.1.164"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"6.6.125"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"6.12.72"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"6.18.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"6.19"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}