CVE-2026-64422: net: ipv4: bound TCP reordering sysctl writes and MTU probe sizes

Greg Kroah-Hartman <[email protected]> Sat, 25 Jul 2026 10:50:39 +0200
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026072534-CVE-2026-64422-d391@gregkh>
From: Greg Kroah-Hartman <[email protected]>

Description
===========

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

net: ipv4: bound TCP reordering sysctl writes and MTU probe sizes

Reject invalid `net.ipv4.tcp_reordering` values before they reach TCP
socket state. The sysctl is stored as an `int` but copied into the
`u32` `tp->reordering` field for new sockets, so negative writes wrap
to large values.

With `tcp_mtu_probing=2`, the wrapped value can overflow the
`tcp_mtu_probe()` size calculation and drive the MTU probing path into
an out-of-bounds read. Route `tcp_reordering` writes through
`proc_dointvec_minmax()` and require it to be at least 1. Also require
`tcp_max_reordering` to be at least 1 so the configured maximum cannot
become negative either.

When registering the table for a non-init network namespace, relocate
`extra2` pointers that refer into `init_net.ipv4` so the
`tcp_reordering` upper bound follows that namespace's
`tcp_max_reordering`.

Harden `tcp_mtu_probe()` itself by computing `size_needed` as `u64`.
This keeps the send queue and window checks from being bypassed through
signed integer overflow.

The Linux kernel CVE team has assigned CVE-2026-64422 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 2.6.24 with commit 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf and fixed in 5.10.261 with commit f0d88a4cd03affff6c08adf6c63964e235aede43
	Issue introduced in 2.6.24 with commit 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf and fixed in 5.15.212 with commit 27ddf4486c7dbf5bdd393fa8bef6b67179796d98
	Issue introduced in 2.6.24 with commit 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf and fixed in 6.1.178 with commit 782708ca1ea1f68b8cbb5ea3a7f5f18d0000efae
	Issue introduced in 2.6.24 with commit 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf and fixed in 6.6.145 with commit e81f805824a8109504fce090641b17d135b48cd1
	Issue introduced in 2.6.24 with commit 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf and fixed in 6.12.96 with commit 99206ce2244f8a3ed64298d0667c9055845a5dc7
	Issue introduced in 2.6.24 with commit 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf and fixed in 6.18.39 with commit bbae351c0f32f7c200249e4aa6561b2b419dcf69
	Issue introduced in 2.6.24 with commit 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf and fixed in 7.1.4 with commit a094ac95d3b69adfa1676eb9c8eae6835d4f1671
	Issue introduced in 2.6.24 with commit 91cc17c0e5e5ada156a8d5787a2509d263ea6bbf and fixed in 7.2-rc1 with commit efb8763d7bbb40cff4cc55a6b62c3095a038149c

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-64422
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	net/ipv4/sysctl_net_ipv4.c
	net/ipv4/tcp_output.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	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