CVE-2026-80793
N/A
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
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < a716a64a4ba68cd46f2745fba2b1099fe8e0aa59 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 515b6816ba0c12d8415c88e5f41e6ec029e35cfa | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 74ce7389f8f562d39015f59a00ef7ad6acd37803 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < b0ea911453ce7210e8200a07a94d2458bd1e6430 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 36e0741833bd823866f8cb9f112f37cea1a70b60 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < d9d1a676b033acabf8e5645f730486d1f8204a3f | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 3556beb8ca86677af2aca5bfbed6f8e790fccc83 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < c8a74adccaf028223054633b532593101dfcc581 | affected |
| Linux | Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < c0726f0caf8c6b3208552949e17d23634a2f3129 | affected |
| Linux | Linux | 2.6.12 | affected |
| Linux | Linux | 0 < 2.6.12 | unaffected |
| Linux | Linux | 5.10.267 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.218 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.185 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.154 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.106 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.47 <= 6.18.* | unaffected |
| Linux | Linux | 7.1.11 <= 7.1.* | unaffected |
| Linux | Linux | 7.2.1 <= 7.2.* | unaffected |
| Linux | Linux | 7.3-rc1 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/a716a64a4ba68cd46f2745fba2b1099fe8e0aa59
- https://git.kernel.org/stable/c/515b6816ba0c12d8415c88e5f41e6ec029e35cfa
- https://git.kernel.org/stable/c/74ce7389f8f562d39015f59a00ef7ad6acd37803
- https://git.kernel.org/stable/c/b0ea911453ce7210e8200a07a94d2458bd1e6430
- https://git.kernel.org/stable/c/36e0741833bd823866f8cb9f112f37cea1a70b60
- https://git.kernel.org/stable/c/d9d1a676b033acabf8e5645f730486d1f8204a3f
- https://git.kernel.org/stable/c/3556beb8ca86677af2aca5bfbed6f8e790fccc83
- https://git.kernel.org/stable/c/c8a74adccaf028223054633b532593101dfcc581
- https://git.kernel.org/stable/c/c0726f0caf8c6b3208552949e17d23634a2f3129
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.