{"id":"CVE-2026-64422","state":"PUBLISHED","title":"net: ipv4: bound TCP reordering sysctl writes and MTU probe sizes","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ipv4: bound TCP reordering sysctl writes and MTU probe sizes\n\nReject invalid `net.ipv4.tcp_reordering` values before they reach TCP\nsocket state. The sysctl is stored as an `int` but copied into the\n`u32` `tp->reordering` field for new sockets, so negative writes wrap\nto large values.\n\nWith `tcp_mtu_probing=2`, the wrapped value can overflow the\n`tcp_mtu_probe()` size calculation and drive the MTU probing path into\nan out-of-bounds read. Route `tcp_reordering` writes through\n`proc_dointvec_minmax()` and require it to be at least 1. Also require\n`tcp_max_reordering` to be at least 1 so the configured maximum cannot\nbecome negative either.\n\nWhen registering the table for a non-init network namespace, relocate\n`extra2` pointers that refer into `init_net.ipv4` so the\n`tcp_reordering` upper bound follows that namespace's\n`tcp_max_reordering`.\n\nHarden `tcp_mtu_probe()` itself by computing `size_needed` as `u64`.\nThis keeps the send queue and window checks from being bypassed through\nsigned integer overflow.","publishedAt":"2026-07-25T08:51:00.671Z","updatedAt":"2026-10-19T20:38:28.132Z","severity":{"score":7.1,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"f0d88a4cd03affff6c08adf6c63964e235aede43","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"27ddf4486c7dbf5bdd393fa8bef6b67179796d98","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"782708ca1ea1f68b8cbb5ea3a7f5f18d0000efae","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"e81f805824a8109504fce090641b17d135b48cd1","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"99206ce2244f8a3ed64298d0667c9055845a5dc7","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"bbae351c0f32f7c200249e4aa6561b2b419dcf69","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"a094ac95d3b69adfa1676eb9c8eae6835d4f1671","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"efb8763d7bbb40cff4cc55a6b62c3095a038149c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/sysctl_net_ipv4.c","net/ipv4/tcp_output.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.24","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.24","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.96","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/sysctl_net_ipv4.c","net/ipv4/tcp_output.c"]}],"references":["https://git.kernel.org/stable/c/f0d88a4cd03affff6c08adf6c63964e235aede43","https://git.kernel.org/stable/c/27ddf4486c7dbf5bdd393fa8bef6b67179796d98","https://git.kernel.org/stable/c/782708ca1ea1f68b8cbb5ea3a7f5f18d0000efae","https://git.kernel.org/stable/c/e81f805824a8109504fce090641b17d135b48cd1","https://git.kernel.org/stable/c/99206ce2244f8a3ed64298d0667c9055845a5dc7","https://git.kernel.org/stable/c/bbae351c0f32f7c200249e4aa6561b2b419dcf69","https://git.kernel.org/stable/c/a094ac95d3b69adfa1676eb9c8eae6835d4f1671","https://git.kernel.org/stable/c/efb8763d7bbb40cff4cc55a6b62c3095a038149c","https://cert-portal.siemens.com/productcert/html/ssa-019113.html","https://cert-portal.siemens.com/productcert/html/ssa-457936.html"],"weaknesses":["CWE-190"],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64422.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64422","state":"PUBLISHED","datePublished":"2026-07-25T08:51:00.671Z","dateUpdated":"2026-10-19T20:38:28.132Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T15:36:31.787Z"},"containers":{"cna":{"title":"net: ipv4: bound TCP reordering sysctl writes and MTU probe sizes","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ipv4: bound TCP reordering sysctl writes and MTU probe sizes\n\nReject invalid `net.ipv4.tcp_reordering` values before they reach TCP\nsocket state. The sysctl is stored as an `int` but copied into the\n`u32` `tp->reordering` field for new sockets, so negative writes wrap\nto large values.\n\nWith `tcp_mtu_probing=2`, the wrapped value can overflow the\n`tcp_mtu_probe()` size calculation and drive the MTU probing path into\nan out-of-bounds read. Route `tcp_reordering` writes through\n`proc_dointvec_minmax()` and require it to be at least 1. Also require\n`tcp_max_reordering` to be at least 1 so the configured maximum cannot\nbecome negative either.\n\nWhen registering the table for a non-init network namespace, relocate\n`extra2` pointers that refer into `init_net.ipv4` so the\n`tcp_reordering` upper bound follows that namespace's\n`tcp_max_reordering`.\n\nHarden `tcp_mtu_probe()` itself by computing `size_needed` as `u64`.\nThis keeps the send queue and window checks from being bypassed through\nsigned integer overflow."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"f0d88a4cd03affff6c08adf6c63964e235aede43","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"27ddf4486c7dbf5bdd393fa8bef6b67179796d98","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"782708ca1ea1f68b8cbb5ea3a7f5f18d0000efae","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"e81f805824a8109504fce090641b17d135b48cd1","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"99206ce2244f8a3ed64298d0667c9055845a5dc7","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"bbae351c0f32f7c200249e4aa6561b2b419dcf69","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"a094ac95d3b69adfa1676eb9c8eae6835d4f1671","versionType":"git"},{"version":"91cc17c0e5e5ada156a8d5787a2509d263ea6bbf","status":"affected","lessThan":"efb8763d7bbb40cff4cc55a6b62c3095a038149c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/sysctl_net_ipv4.c","net/ipv4/tcp_output.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.24","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.24","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.96","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/sysctl_net_ipv4.c","net/ipv4/tcp_output.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/f0d88a4cd03affff6c08adf6c63964e235aede43"},{"url":"https://git.kernel.org/stable/c/27ddf4486c7dbf5bdd393fa8bef6b67179796d98"},{"url":"https://git.kernel.org/stable/c/782708ca1ea1f68b8cbb5ea3a7f5f18d0000efae"},{"url":"https://git.kernel.org/stable/c/e81f805824a8109504fce090641b17d135b48cd1"},{"url":"https://git.kernel.org/stable/c/99206ce2244f8a3ed64298d0667c9055845a5dc7"},{"url":"https://git.kernel.org/stable/c/bbae351c0f32f7c200249e4aa6561b2b419dcf69"},{"url":"https://git.kernel.org/stable/c/a094ac95d3b69adfa1676eb9c8eae6835d4f1671"},{"url":"https://git.kernel.org/stable/c/efb8763d7bbb40cff4cc55a6b62c3095a038149c"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H","baseScore":7.1,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The attacker must locally write the per-network-namespace TCP sysctls and exercise a TCP socket; remote packets alone cannot introduce the invalid signed value.\nAC:L - The attacker can set both tcp_reordering and tcp_mtu_probing=2, establish an attacker-controlled TCP connection, grow its congestion window, and control queued data and receiver-window conditions.\nPR:L - Writes require CAP_NET_ADMIN in the network namespace’s owning user namespace, which an unprivileged user can obtain by creating user and network namespaces on systems permitting unprivileged user namespaces.\nUI:N - The attacker can configure the namespace and trigger MTU probing using their own TCP endpoints without any victim action.\nS:U - The vulnerable TCP implementation and the affected kernel memory and availability remain within the Linux kernel’s security authority.\nC:H - The overflow bypasses send-queue validation and causes an out-of-bounds kernel-memory read through an invalid skb traversal, potentially exposing sensitive kernel data.\nI:N - The established primitive is an out-of-bounds read and malformed skb state; the affected path provides no demonstrated out-of-bounds write or other data-modification primitive.\nA:H - The invalid skb access and inconsistent payload geometry can cause an OOPS, BUG, or kernel panic, and an attacker can trigger the path repeatedly."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T04:55:22.159Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"5.10.261"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"5.15.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"6.12.96"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"6.18.39"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"7.1.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.24","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"affected":[{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.6","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.7","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.6","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.7","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.6","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.7","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.6","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.7","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIPLUS S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.6","status":"affected","lessThan":"*","versionType":"custom"}]},{"vendor":"Siemens","product":"SIPLUS S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.7","status":"affected","lessThan":"*","versionType":"custom"}]}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-019113.html"},{"url":"https://cert-portal.siemens.com/productcert/html/ssa-457936.html"}],"providerMetadata":{"shortName":"siemens-SADP","orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","dateUpdated":"2026-10-15T01:23:46.847Z"},"x_adpType":"supplier"},{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-64422","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-10-16T15:40:28.975734Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-190","lang":"en","type":"CWE","description":"CWE-190 Integer Overflow or Wraparound"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T20:38:28.132Z"}}]}}}