CVE-2026-98306
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
seg6: set IPSKB_L3SLAVE from IP6SKB_L3SLAVE on IPIP decapsulation
When an SRv6 packet arrives on an interface enslaved to a VRF, vrf_ip6_rcv() sets IP6SKB_L3SLAVE in IP6CB, but decap_and_validate() has never set IPSKB_L3SLAVE in IPCB. The bit stayed clear in the common case, and with CONFIG_IPV6_MIP6 the leftover frag_max_size of a reassembled outer packet could even set it, with no VRF involved. Commit 44930446dde4 ("ipv6: seg6: clear IPv4 control block on IPIP decapsulation") then made the unreliable bit reliably clear.
The effect of the missing flag is visible with End.DX4 when a delivery to a local address of the node reaches the socket lookup. For example, a UDP socket bound to the enslaved ingress interface does not receive any of the decapsulated packets, while an unbound socket outside the VRF does. This contradicts Documentation/networking/vrf.rst: by default the scope of an unbound UDP or TCP socket is limited to the default VRF.
Set IPSKB_L3SLAVE for IPv4 in decap_and_validate(), which already does the same for IPv6. The socket lookup then matches the decapsulated packet like any other packet received on that enslaved interface. Such a packet matches an unbound UDP or TCP socket only when udp_l3mdev_accept or tcp_l3mdev_accept is set.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 < 1d9f5c78903dd25a3556229eb716dd465c5f3573 | affected |
| Linux | Linux | 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 < 72f410616000d21a0a6ec6c93a60301b9c92e95c | affected |
| Linux | Linux | 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 < e4d7c52f15f572608374947c6c802052e1a2fc82 | affected |
| Linux | Linux | 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 < 5130afa025c95faa621adf8bac525baeb2b290d2 | affected |
| Linux | Linux | 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 < f8fb4738ccef5f9d107845b05734a56352747b1a | affected |
| Linux | Linux | 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 < ddf60220c925b54a1714c4722fdbdb12833232d0 | affected |
| Linux | Linux | 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 < 8c16e1ccc082a3763dfc6bc2d3f658c1a6336f9d | affected |
| Linux | Linux | 891ef8dd2a8d14e4e73a81dcdb135b574c57f556 < 7616242a2b37883f7322aaa1d2bd6cd0fed28315 | affected |
| Linux | Linux | 4.14 | affected |
| Linux | Linux | 0 < 4.14 | unaffected |
| Linux | Linux | 5.10.271 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.222 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.189 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.158 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.112 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.54 <= 6.18.* | unaffected |
| Linux | Linux | 7.2.8 <= 7.2.* | unaffected |
| Linux | Linux | 7.3-rc4 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/1d9f5c78903dd25a3556229eb716dd465c5f3573
- https://git.kernel.org/stable/c/72f410616000d21a0a6ec6c93a60301b9c92e95c
- https://git.kernel.org/stable/c/e4d7c52f15f572608374947c6c802052e1a2fc82
- https://git.kernel.org/stable/c/5130afa025c95faa621adf8bac525baeb2b290d2
- https://git.kernel.org/stable/c/f8fb4738ccef5f9d107845b05734a56352747b1a
- https://git.kernel.org/stable/c/ddf60220c925b54a1714c4722fdbdb12833232d0
- https://git.kernel.org/stable/c/8c16e1ccc082a3763dfc6bc2d3f658c1a6336f9d
- https://git.kernel.org/stable/c/7616242a2b37883f7322aaa1d2bd6cd0fed28315
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.