Linux kernel seg6 decapsulation drops VRF socket delivery
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Partial Red Hat: 4 without a fix
No CVSS vector from any source. Fix status from CNA and Red Hat.
Summary
The Linux kernel seg6 IPIP decapsulation code never sets the IPv4 L3 slave flag, so SRv6 packets arriving on a VRF-enslaved interface are not matched correctly by the socket lookup. With End.DX4, a UDP socket bound to the enslaved interface does not receive decapsulated packets, while an unbound socket outside the VRF does, which contradicts the documented VRF scope.
Written with Claude Haiku 5.5 from the sources below · 2026-11-04
Description from the CNA
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.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
Remediation
Update the Linux kernel to 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, 6.18.54, 7.2.8 or 7.3, matching the release branch in use. Red Hat lists Red Hat Enterprise Linux 9, Red Hat Enterprise Linux 10, Red Hat OpenShift Container Platform 4 and Red Hat OpenShift Container Platform 5 as affected without a fix and with no plan available.
Written with Claude Haiku 5.5 from the sources below · 2026-11-04
- Fix · CNA Linux (Linux) Fixed in 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, 6.18.54, 7.2.8, 7.3
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 10 | Affected | No fix yet |
| Red Hat Enterprise Linux 9 | Affected | No fix yet |
| Red Hat OpenShift Container Platform 4 | Affected | No fix yet |
| Red Hat OpenShift Container Platform 5 | Affected | No fix yet |
Not affected: 4 products
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux 8
- Red Hat OpenShift Container Platform 4
Timeline
- 2026-10-06 Threatist record created from CVE-2026-98306
- 2026-10-06 Alias added: GHSA-8vq5-3gc9-33qh
- 2026-10-11 Affected versions changed · Red Hat
- 2026-10-11 CVSS score added · Red Hat
- 2026-10-19 Fix available: Linux/[email protected] · CNA
- 2026-10-27 CVSS score changed · Red Hat
- 2026-11-04 Affected versions changed · Red Hat
References
Other 8
- 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
More Linux vulnerabilities
- TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
- TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
- TI-2021-02452 Incorrect authorization in Ubuntu linux kernel KEVCVSS 3.1HIGH 8.8
- TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
- TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
- TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
Sources
- CVE-2026-98306 · CVE Program
- CVE-2026-98306 · NVD
- FIRST EPSS
- GHSA-8vq5-3gc9-33qh · GitHub Advisory Database · CC BY 4.0
- CVE-2026-98306 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences