Description
In the Linux kernel, the following vulnerability has been resolved:

net: tap: fix wrong transport_header when sending VLAN-tagged frame

In tap_get_user_xdp(), when processing a VLAN-tagged frame (e.g.
ETH_P_8021Q), skb_set_network_header() is called first to advance
network_header past the VLAN tag to the inner protocol header.
skb_probe_transport_header() is then called with skb->protocol still
set to ETH_P_8021Q, while nhoff (derived from skb_network_offset())
already points past the VLAN tag to the inner protocol header.

In __skb_flow_dissect(), proto is initialized to ETH_P_8021Q and nhoff
points past the VLAN tag. When the dissector hits case ETH_P_8021Q, it
reads a struct vlan_hdr at the current nhoff via __skb_header_pointer(),
but that offset contains the inner protocol header (e.g. an IP header).
The bytes are misinterpreted as a VLAN header, yielding a garbage
encapsulated EtherType that matches no known protocol. The dissector
returns false, so skb_probe_transport_header() never calls
skb_set_transport_header(), leaving transport_header at its uninitialized
sentinel value (~0U).

Move skb_set_network_header() to after skb_probe_transport_header(). At
the time skb_probe_transport_header() is called, network_header still
points to the VLAN header (offset ETH_HLEN), so nhoff is correct and the
flow dissector can parse the VLAN header, extract the inner EtherType,
and advance nhoff to the inner protocol header, allowing transport_header
to be set correctly.
Published: 2026-09-04
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Apply Patch
AI Analysis

Impact

The tap driver incorrectly sets the transport_header when processing VLAN-tagged frames. During packet transmission, skb_set_network_header is called before skb_probe_transport_header, causing the network_header to point past the VLAN tag to the inner protocol header while the protocol field remains set to ETH_P_8021Q. The subsequent dissector misinterprets the inner Ethernet header as a VLAN header, leaves transport_header uninitialized, and the packet is delivered with an invalid transport layer protocol. This misparsing can interfere with normal packet handling, potentially leading to corrupted packet processing or a denial of service for applications that use the affected tap interface. The CVE description does not explicitly confirm a kernel crash, only that incorrect headers may result, so the risk is limited to functionality disruption rather than guaranteed crash.

Affected Systems

All Linux systems that run a kernel containing the tap driver and expose a tap interface are susceptible. The issue is present in every kernel release prior to the patch commit that corrects the header handling, regardless of distribution or kernel version number.

Risk and Exploitability

The EPSS score is not available and the vulnerability is not listed in CISA’s KEV catalog, indicating no publicly known exploitation to date. An attacker capable of injecting crafted VLAN-tagged frames into a reachable tap interface—either locally or remote if the interface is exposed—could trigger packet processing failure and cause a denial of service. Because the misinterpretation occurs only when the probe function is invoked with the incorrect network_header placement, the attack requires a specific packet format and may be challenging to trigger reliably. Overall, the risk level can be considered moderate, with the primary impact being service disruption rather than privilege escalation or data exfiltration.

Generated by OpenCVE AI on September 4, 2026 at 21:03 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a release that includes the tap driver patch correcting VLAN header handling
  • Restrict access to the tap interface by configuring firewall or network policies to block or rate‑limit incoming VLAN-tagged frames
  • If an immediate kernel upgrade is not possible, disable or remove the tap interface until the patch is applied

Generated by OpenCVE AI on September 4, 2026 at 21:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 04 Sep 2026 21:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665

Fri, 04 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net: tap: fix wrong transport_header when sending VLAN-tagged frame In tap_get_user_xdp(), when processing a VLAN-tagged frame (e.g. ETH_P_8021Q), skb_set_network_header() is called first to advance network_header past the VLAN tag to the inner protocol header. skb_probe_transport_header() is then called with skb->protocol still set to ETH_P_8021Q, while nhoff (derived from skb_network_offset()) already points past the VLAN tag to the inner protocol header. In __skb_flow_dissect(), proto is initialized to ETH_P_8021Q and nhoff points past the VLAN tag. When the dissector hits case ETH_P_8021Q, it reads a struct vlan_hdr at the current nhoff via __skb_header_pointer(), but that offset contains the inner protocol header (e.g. an IP header). The bytes are misinterpreted as a VLAN header, yielding a garbage encapsulated EtherType that matches no known protocol. The dissector returns false, so skb_probe_transport_header() never calls skb_set_transport_header(), leaving transport_header at its uninitialized sentinel value (~0U). Move skb_set_network_header() to after skb_probe_transport_header(). At the time skb_probe_transport_header() is called, network_header still points to the VLAN header (offset ETH_HLEN), so nhoff is correct and the flow dissector can parse the VLAN header, extract the inner EtherType, and advance nhoff to the inner protocol header, allowing transport_header to be set correctly.
Title net: tap: fix wrong transport_header when sending VLAN-tagged frame
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-04T17:19:15.289Z

Reserved: 2026-08-26T14:34:25.800Z

Link: CVE-2026-80905

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-04T18:18:00.120

Modified: 2026-09-04T18:18:00.120

Link: CVE-2026-80905

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-04T22:00:05Z

Weaknesses