CVE-2026-80840 json
ipv6: seg6: clear IPv4 control block on IPIP decapsulation
published 2026-09-04 2 mo ago modified 2026-10-19 21 d ago also EUVD-2026-71290
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 10%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv6: seg6: clear IPv4 control block on IPIP decapsulation
End.DX4 and End.DT4 decapsulate an IPv4 packet through decap_and_validate() and send it directly to IPv4 routing. The inner packet therefore bypasses ip_rcv_core(), which normally clears IPCB before IPv4 interprets skb->cb.
The skb instead retains IP6CB data from the outer packet. IP6CB and IPCB use the same skb->cb storage, so IP6CB(skb)->lastopt overlaps IPCB(skb)->opt.optlen and srr, while IP6CB(skb)->nhoff overlaps rr and ts.
The sender can make the stale optlen byte nonzero with a valid outer extension-header chain. The reproducers put an eight-byte Destination Options header immediately after the 40-byte IPv6 header and before the Segment Routing Header. ipv6_destopt_rcv() records the sender-controlled Destination Options offset in both lastopt and nhoff, setting them to 40. On the reproduced little-endian x86-64 kernel, IPv4 therefore sees optlen = 40 and rr = 40.
Both tcp_v4_save_options() and __ip_options_echo() skip option copying when optlen is zero. Here optlen is 40, so the TCP SYN path allocates room for 40 bytes of option data and calls __ip_options_echo(). The stale rr value makes that function read inner packet byte 41 as the Record Route option length. The reproducers set that sender-controlled byte to 255, so __ip_options_echo() copies 255 bytes into the 40-byte option-data area.
Separate End.DX4 and End.DT4 reproducers on the unpatched v7.2-rc5 kernel both produced:
BUG: KASAN: slab-out-of-bounds in __ip_options_echo() Write of size 255
The relevant End.DX4 call path is:
__ip_options_echo tcp_v4_route_req tcp_conn_request tcp_v4_conn_request tcp_rcv_state_process tcp_v4_do_rcv tcp_v4_rcv ip_protocol_deliver_rcu ip_local_deliver_finish ip_local_deliver input_action_end_dx4_finish input_action_end_dx4
The relevant End.DT4 call path is:
__ip_options_echo tcp_v4_route_req tcp_conn_request tcp_v4_conn_request tcp_rcv_state_process tcp_v4_do_rcv tcp_v4_rcv ip_protocol_deliver_rcu ip_local_deliver_finish ip_local_deliver input_action_end_dt4
tcp_v4_save_options() is inlined into the tcp_v4_route_req() path, so it does not appear as a separate frame.
When decap_and_validate() handles IPPROTO_IPIP, save the ingress interface from IP6CB, clear IPCB, and restore the saved value. Doing this in the common decapsulation path covers End.DX4, End.DT4, and End.DT46's IPv4 arm.
Use IP6CB(skb)->iif rather than skb->skb_iif. These actions run after l3mdev processing, which can replace skb_iif with the L3 master; IP6CB iif still records the receiving interface set at IPv6 ingress.
Patch / fix
- Linux Linux 5.10.269, 5.15.220, 6.1.187, 6.6.156, 6.12.108, 6.18.49, 7.1.13, 7.2.3, 7.3
- linux Debian 12 6.1.187-1
- linux Debian 13 6.12.111-1
- linux Debian 14 7.1.13-1
- linux-6.12 Debian 12 6.12.111-1~deb12u1
debian advisories DEBIAN-CVE-2026-80840
- linux Ubuntu 22.04 LTS 5.15.0-202.212
- linux Ubuntu 26.04 LTS 7.0.0-42.42
- linux-aws Ubuntu 22.04 LTS 5.15.0-1119.126
- linux-aws Ubuntu 26.04 LTS 7.0.0-1016.17
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1120.130
- linux-gcp Ubuntu 26.04 LTS 7.0.0-1016.18
- linux-gke Ubuntu 22.04 LTS 5.15.0-1115.121
- linux-ibm Ubuntu 22.04 LTS 5.15.0-1113.117
ubuntu advisories UBUNTU-CVE-2026-80840
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-64kb SLE Module for Basesystem 15 SP7 6.4.0-150700.53.84.1
- kernel-syms SLE Module for Development Tools 15 SP7 6.4.0-150700.53.84.1
- kernel-azure SLE Module for Public Cloud 15 SP7 6.4.0-150700.53.84.1
- kernel-source SLE Module for Development Tools 15 SP7, SLE Module for Basesystem 15 SP7 6.4.0-150700.53.84.1
- kernel-default SLE Workstation Extension 15 SP7, SLE Module for Legacy 15 SP7, SLE Module for Basesystem 15 SP7 +2 more 6.4.0-150700.53.84.1
- kernel-zfcpdump SLE Module for Basesystem 15 SP7 6.4.0-150700.53.84.1
- kernel-obs-build SLE Module for Development Tools 15 SP7 6.4.0-150700.53.84.1
- kernel-default-base SLE Module for Basesystem 15 SP7 6.4.0-150700.53.84.1.150700.17.47.1
suse advisories SUSE-SU-2026:4706-1SUSE-SU-2026:4668-1SUSE-SU-2026:4667-1SUSE-SU-2026:4666-1SUSE-SU-2026:4665-1SUSE-SU-2026:4660-1
- kernel-rt openSUSE Leap 16.0 6.12.0-160000.39.1
- dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-64kb openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-syms openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-azure openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-source openSUSE Leap 16.0 6.12.0-160000.39.1
- kernel-default openSUSE Leap 16.0 6.12.0-160000.39.1
opensuse advisories openSUSE-SU-2026:22091-1openSUSE-SU-2026:11773-1
- git.kernel.org/stable/c/10fd1a8f58ac619a9e251f2858e2e2c8fd6cd667 commit
- git.kernel.org/stable/c/eb0f422487228e140f3d609b032ac61aedcab8fa commit
- git.kernel.org/stable/c/9039e4f3e1c0ffe2b575b655b3f58fdd10f7e40c commit
- git.kernel.org/stable/c/f52f1e75716d2ee49e013edf204ac92337c72fd8 commit
- git.kernel.org/stable/c/0e3f01fe2e704e76af4385b8a1742641885a191c commit
- git.kernel.org/stable/c/3e4476e58343fb8f2fffced9e22d935376b17aaf commit
- git.kernel.org/stable/c/bf1c1151560d11036a144d917fa4c131831342d7 commit
- git.kernel.org/stable/c/f4be3b391265e24c7720fc867c50062b436acf33 commit
- git.kernel.org/stable/c/44930446dde45a7a90fe1446fa38eb0e2c561646 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-80840 updated cvss 7.0
kernel: ipv6: seg6: clear IPv4 control block on IPIP decapsulation
-
Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernel Red Hat OpenShift Container Platform 4 openshift/ose-rhel-coreos-9 Red Hat OpenShift Container Platform 5 openshift/ose-rhel-coreos-9affected: workaround, no fix available
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat OpenShift Container Platform 4 openshift/ose-rhel-coreos-8not affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.21% chance of exploitation in the next 30 days, higher than 10% of all scored CVEs (FIRST EPSS, 2026-11-08).
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/10fd1a8f58ac619a9e251f2858e2e2c8fd6cd667
- git.kernel.org /stable/c/eb0f422487228e140f3d609b032ac61aedcab8fa
- git.kernel.org /stable/c/9039e4f3e1c0ffe2b575b655b3f58fdd10f7e40c
- git.kernel.org /stable/c/f52f1e75716d2ee49e013edf204ac92337c72fd8
- git.kernel.org /stable/c/0e3f01fe2e704e76af4385b8a1742641885a191c
- git.kernel.org /stable/c/3e4476e58343fb8f2fffced9e22d935376b17aaf
- git.kernel.org /stable/c/bf1c1151560d11036a144d917fa4c131831342d7
- git.kernel.org /stable/c/f4be3b391265e24c7720fc867c50062b436acf33
- git.kernel.org /stable/c/44930446dde45a7a90fe1446fa38eb0e2c561646
Sources
- CVE List CVE-2026-80840
- NVD CVE-2026-80840
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.