Skip to main content
← All vulnerabilities
CVE-2026-80793

ipv4: reject undersized MTUs in ip_do_fragment()

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.267, 5.15.218, 6.1.185, 6.6.154, 6.12.106, and 3 more
None on Exploit-DB, Metasploit or GitHub

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.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in a716a64a4ba68cd46f2745fba2b1099fe8e0aa59; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 515b6816ba0c12d8415c88e5f41e6ec029e35cfa; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 74ce7389f8f562d39015f59a00ef7ad6acd37803; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in b0ea911453ce7210e8200a07a94d2458bd1e6430; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 36e0741833bd823866f8cb9f112f37cea1a70b60; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in d9d1a676b033acabf8e5645f730486d1f8204a3f; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in 3556beb8ca86677af2aca5bfbed6f8e790fccc83; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in c8a74adccaf028223054633b532593101dfcc581; From 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 · fixed in c0726f0caf8c6b3208552949e17d23634a2f3129

  • Linux Linux

    2.6.12

  • KernelLinux

    From 2.6.12 · fixed in 5.10.267; From 5.11.0 · fixed in 5.15.218; From 5.16.0 · fixed in 6.1.185; From 6.2.0 · fixed in 6.6.154; From 6.7.0 · fixed in 6.12.106; From 6.13.0 · fixed in 6.18.47; From 6.19.0 · fixed in 7.1.11; From 7.2.0 · fixed in 7.2.1

References 9

git.kernel.org