CVE-2026-80793

Summary

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

ipv4: reject undersized MTUs in ip_do_fragment()

ip_do_fragment() subtracts the IPv4 header length from the effective MTU and passes the resulting payload MTU to ip_frag_next().

If the effective MTU is smaller than hlen + 8, ip_frag_next() rounds the fragment payload length down to zero. The fragmentation state then never makes forward progress: state->left, state->ptr and state->offset stay unchanged while ip_do_fragment() keeps allocating and transmitting header-only fragments until the softlockup detector fires.

This is reproducible with a route installed using "mtu lock 20", but it is also reproducible without route MTU lock, for example by forwarding a packet to a device whose MTU is 20.

Fix it in ip_do_fragment() by rejecting mtu < hlen + 8 with -EMSGSIZE, matching the existing IPv6 fragmentation check.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < a716a64a4ba68cd46f2745fba2b1099fe8e0aa59affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 515b6816ba0c12d8415c88e5f41e6ec029e35cfaaffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 74ce7389f8f562d39015f59a00ef7ad6acd37803affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < b0ea911453ce7210e8200a07a94d2458bd1e6430affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 36e0741833bd823866f8cb9f112f37cea1a70b60affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < d9d1a676b033acabf8e5645f730486d1f8204a3faffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 3556beb8ca86677af2aca5bfbed6f8e790fccc83affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < c8a74adccaf028223054633b532593101dfcc581affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < c0726f0caf8c6b3208552949e17d23634a2f3129affected
LinuxLinux2.6.12affected
LinuxLinux0 < 2.6.12unaffected
LinuxLinux5.10.267 <= 5.10.*unaffected
LinuxLinux5.15.218 <= 5.15.*unaffected
LinuxLinux6.1.185 <= 6.1.*unaffected
LinuxLinux6.6.154 <= 6.6.*unaffected
LinuxLinux6.12.106 <= 6.12.*unaffected
LinuxLinux6.18.47 <= 6.18.*unaffected
LinuxLinux7.1.11 <= 7.1.*unaffected
LinuxLinux7.2.1 <= 7.2.*unaffected
LinuxLinux7.3-rc1 <= *unaffected

Weaknesses

References