CVE-2026-43037 In the Linux kernel, the following vulnerability has been resolved: ip6_tunnel: clear skb2->cb[] in ip4ip6_err() Oskar…
Description
In the Linux kernel, the following vulnerability has been resolved: ip6_tunnel: clear skb2->cb[] in ip4ip6_err() Oskar Kjos reported the following problem. ip4ip6_err() calls icmp_send() on a cloned skb whose cb[] was written by the IPv6 receive path as struct inet6_skb_parm. icmp_send() passes IPCB(skb2) to __ip_options_echo(), which interprets that cb[] region as struct inet_skb_parm (IPv4). The layouts differ: inet6_skb_parm.nhoff at offset 14 overlaps inet_skb_parm.opt.rr, producing a non-zero rr value. __ip_options_echo() then reads optlen from attacker-controlled packet data at sptr[rr+1] and copies that many bytes into dopt->__data, a fixed 40-byte stack buffer (IP_OPTIONS_DATA_FIXED_SIZE). To fix this we clear skb2->cb[], as suggested by Oskar Kjos. Also add minimal IPv4 header validation (version == 4, ihl >= 5).
Affected products and versions
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux 7.0 | earliest → < 7.0 | 7.0 |
| Linux 6.19 | earliest → < 6.19.12 | 6.19.12 |
| Linux 6.18 | earliest → < 6.18.22 | 6.18.22 |
| Linux 6.12 | earliest → < 6.12.81 | 6.12.81 |
| Linux 6.6 | earliest → < 6.6.134 | 6.6.134 |
| Linux 6.1 | earliest → < 6.1.168 | 6.1.168 |
| Linux 5.15 | earliest → < 5.15.203 | 5.15.203 |
| Linux 5.10 | earliest → < 5.10.253 | 5.10.253 |
| Linux | 2.6.22 | No fix stated |
Show the 70 other branches Hide the 70 other branches
References
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
Timeline
- Published
- Last modified