Look up another CVE · open CVE-2026-80681 in the interactive tracker
CVE-2026-80681
vxlan: re-fetch eth header after route_shortcircuit()
Published 2026-08-28 (2 months ago) by the Linux kernel CNA. Subsystem drivers/net. Debian urgency: not yet assigned.
What to do, per Debian release
Debian's own status for CVE-2026-80681 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
| Release | Status | Version | What this means |
|---|---|---|---|
| Debian 12bookworm | fixedDLA-4777-1 · 2026-09-08 · text | 6.1.187-1 | Update the kernel and reboot. DLA-4777-1 shipped the fix on 2026-09-08, in 6.1.187-1. A running kernel keeps the old code until the machine restarts. |
| Debian 13trixie | fixed | 6.12.105-1 | Update the kernel and reboot. Fixed in 6.12.105-1. A running kernel keeps the old code until the machine restarts. |
| Debian 14forky | fixed | 7.1.8-1 | Update the kernel and reboot. Fixed in 7.1.8-1. A running kernel keeps the old code until the machine restarts. |
| Debian unstablesid | fixed | 7.1.8-1 | Update the kernel and reboot. Fixed in 7.1.8-1. A running kernel keeps the old code until the machine restarts. |
| Debian 12bookworm · linux-6.12 | fixedDLA-4788-1 · 2026-09-19 · text | 6.12.107-1~deb12u1 | Update the kernel and reboot. DLA-4788-1 shipped the fix on 2026-09-19, in 6.12.107-1~deb12u1. A running kernel keeps the old code until the machine restarts. |
The vulnerability
What the bug is
Before route_shortcircuit(), the eth header pointer is cached from eth_hdr(skb). Inside route_shortcircuit(), pskb_may_pull() can be called, which may reallocate skb->head. In this case, returning to vxlan_xmit() leaves the cached eth pointer pointing to freed memory, leading to a use-after-free when dereferencing eth->h_dest. Fix this by updating eth = eth_hdr(skb) after calling route_shortcircuit().
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.
drivers/net/vxlan/vxlan_core.c
- What this is
- NETWORKING DRIVERSMAINTAINERS section matched on drivers/net/ · netdev@vger.kernel.org · Maintained
- Kernel module
- vxlan
Check it on the machine
grep -w CONFIG_VXLAN /boot/config-$(uname -r)Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.
lsmod | grep -w vxlanPrints a line if that module is loaded right now, and nothing if it is not. One that is not loaded can still be loaded later by anything that needs it.
Show whether Debian builds this, per release
Debian builds this as a loadable module. Every release below compiles it as a module on every flavour, so whether the code is in the running kernel depends on whether that module is loaded.
- bookworm, trixie, forky, sid, bookworm · linux-6.12m
- m
- a loadable module on every flavour - check lsmod, can be blacklisted
- Build switch
- CONFIG_VXLAN
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 kbuild Makefiles Debian linux-config packages
Signals
- Published
- 2026-08-28 (2 months ago)source
- CVSS
- 9.8 critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hsource recompute it - Attack vector
- network (AV:N)source
- EPSS
- 0.50%, higher than 41.5% of all CVEssource
- CISA KEV
- not listedthe KEV catalogue
- Debian urgency
- not yet assignedsource
- Subsystem
- drivers/net
Upstream fixes
The versions the CNA records as introducing and fixing this, and the commit for each. source
| Introduced | Fixed in | Commit |
|---|---|---|
| 3.10 | 5.10.265 | 6375093eb45c |
| 3.10 | 5.15.216 | 1b7f7b653e35 |
| 3.10 | 6.1.183 | bf045341dfb3 |
| 3.10 | 6.6.151 | 2355c8c26d2a |
| 3.10 | 6.12.103 | 1511631b7cfc |
| 3.10 | 6.18.44 | 1235e017aa11 |
| 3.10 | 7.1.8 | c9dceac9e1c7 |
| 3.10 | 7.2 | 1395a676ec15 |
Debian advisories
| Advisory | Date | Shipped to | Debian |
|---|---|---|---|
| DLA-4788-1 | 2026-09-19 | bookworm 6.12.107-1~deb12u1 | tracker |
| DLA-4777-1 | 2026-09-08 | bookworm 6.1.187-1 | tracker |
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 in vxlan_xmit(), reached when the kernel transmits packets out a VXLAN netdev via routing, bridging, or overlay forwarding; remote peers can inject IPv4/IPv6 Ethernet frames that traverse this TX path on cloud, Kubernetes, and data-center VXLAN deployments.
- AC:LAttack complexity, low
- An attacker controlling overlay or forwarded traffic can reliably meet RSC prerequisites (router FDB entry, IPv4/IPv6 ethertype, neighbour MAC mismatch, cloned/nonlinear skb) so route_shortcircuit() calls pskb_may_pull/skb_cow_head and reallocates skb->head, invalidating the cached eth pointer.
- PR:NPrivileges required, none
- Exploitation requires only sending network traffic processed by an existing VXLAN interface with RSC enabled, not host administrator credentials; remote overlay peers and unauthenticated senders whose packets are forwarded through VXLAN need no elevated privileges on the target.
- UI:NUser interaction, none
- The use-after-free is triggered automatically during kernel packet transmit processing in vxlan_xmit() with no action required from a local user or administrator beyond normal network operation on a VXLAN-enabled host.
- S:UScope, unchanged
- The stale eth_hdr pointer causes heap use-after-free within the kernel's own memory domain during VXLAN transmit processing; impact is standard in-kernel memory corruption and does not inherently cross VM, container, or IOMMU security boundaries.
- C:HConfidentiality impact, high
- After route_shortcircuit() reallocates skb->head, vxlan_xmit() dereferences the stale eth pointer for eth->h_dest, constituting a heap use-after-free read that can disclose adjacent freed slab contents and support further kernel memory disclosure primitives.
- I:HIntegrity impact, high
- Use-after-free of the Ethernet header buffer in skb head memory enables attacker-controlled reuse of freed kmalloc slabs, a well-established path to heap grooming and arbitrary kernel memory corruption or control-flow hijacking beyond the immediate MAC header read.
- A:HAvailability impact, high
- Dereferencing a freed skb head pointer in vxlan_xmit() can cause an immediate kernel oops or panic from invalid memory access, and UAF heap corruption routinely destabilizes or crashes the system even when full exploitation is not pursued.