data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-80615 in the interactive tracker

CVE-2026-80615

net: dst_metadata: fix false-positive memcpy overflow in tun_dst_unclone

8.2 EPSS 0.5% AV:N

Published 2026-08-28 (2 months ago) by the Linux kernel CNA. Subsystem include/net. Debian urgency: unimportant.

What to do, per Debian release

Debian's own status for CVE-2026-80615 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormnot affected6.1.190-1Nothing to do. bookworm never shipped the vulnerable code.
Debian 13trixienot affected6.12.113-1Nothing to do. trixie never shipped the vulnerable code.
Debian 14forkyfixed7.1.5-1Update the kernel and reboot. Fixed in 7.1.5-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.1.5-1Update the kernel and reboot. Fixed in 7.1.5-1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

kmalloc_flex() in metadata_dst_alloc() sets __counted_by for the structure to the options_len, which is then initialized to zero. Later, we're initializing the structure by copying the tunnel info together with the options, and this triggers a warning for a potential memcpy overflow, since the compiler estimates that the options can't fit into the structure, even though the memory for them is actually allocated. memcpy: detected buffer overflow: 104 byte write of buffer size 96 WARNING: CPU: X PID: Y at lib/string_helpers.c:1036 __fortify_report skb_tunnel_info_unclone+0x179/0x190 geneve_xmit+0x7fe/0xe00 The issue is triggered when built with clang and source fortification. Fix that by doing the copy in two stages: first - the main data with the options_len, then the options. This way the correct length should be known at the time of the copy. It would be better if the options_len never changed after allocation, but the allocation code is a little separate from the initialization and it would be awkward and potentially dangerous to return a struct with options_len set to a non-zero value from the metadata_dst_alloc(). Another option would be to use ip_tunnel_info_opts_set(), but it is doing too many unnecessary operations for the use case here.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

include/net/dst_metadata.h

What this is
NETWORKING [GENERAL]MAINTAINERS section matched on include/net/ · netdev@vger.kernel.org · Maintained
Show whether Debian builds this, per release

Not established. This site could not find the build rule for the affected file in the kernel trees Debian ships, so it has no answer about whether Debian compiles this code. Read that as unknown, never as absent.

  • bookworm, trixie, forky, sid?
?
not established - no Makefile entry for the affected file

Where a release above reads "not established", no build rule for the affected file was found in that release's kernel tree. That is a gap in this lookup, not a finding that the code is absent.

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS

Signals

Published
2026-08-28 (2 months ago)source
CVSS
8.2 high
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:Hsource recompute it
Attack vector
network (AV:N)source
EPSS
0.49%, higher than 40.7% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
unimportantsource
Subsystem
include/net

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
7.07.1.57ce31739fe88
7.07.24c6d43db2a4d

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:NAttack vector, network
The bug is reached from geneve_xmit/vxlan_xmit and OVS dev_fill_metadata_dst during overlay packet transmit; remote peers can inject Geneve/VXLAN UDP traffic with tunnel options that later traverse skb_tunnel_info_unclone() on cloud, Kubernetes, and OpenStack/OVN nodes.
AC:LAttack complexity, low
On kernels built with CONFIG_FORTIFY_SOURCE and clang, a remote attacker can deterministically trigger the fortified memcpy check by sending Geneve/VXLAN packets carrying non-zero tunnel options that provoke PMTU handling or OVS egress-metadata cloning; no races or victim-specific memory layout are required.
PR:NPrivileges required, none
Exploitation requires only that the target host already runs Geneve/VXLAN/OVS overlay netdevs, which is routine in data centers; remote overlay peers and unauthenticated senders whose packets are forwarded through these tunnels need no elevated privileges on the target system.
UI:NUser interaction, none
The fortify warning is triggered automatically during kernel packet transmit or OVS metadata handling with no action required from a local user or administrator beyond normal network operation on an overlay-enabled host.
S:UScope, unchanged
Impact is a kernel fortify WARN/BUG in the host networking stack during tunnel metadata cloning; it does not cross VM, container, or IOMMU security boundaries into another authority domain.
C:LConfidentiality impact, low
No actual out-of-bounds read occurs because fortify halts the memcpy before any real overflow, but __fortify_report() emits a kernel warning and call trace that can disclose limited kernel text/layout information useful for further exploitation.
I:NIntegrity impact, none
This is a fortify false positive: metadata_dst_alloc() correctly sizes the destination via kmalloc_flex() and fortify aborts before the memcpy executes; there is no memory corruption, arbitrary write, or code-execution primitive.
A:HAvailability impact, high
Triggering the fortify check calls __fortify_panic(), which issues WARN then BUG(), causing a kernel oops/panic and immediate denial of service on overlay hosts processing malicious Geneve/VXLAN tunnel-metadata traffic.