CVE-2026-68299
NoneCVSS
—
EPSS
0.5%
Published
Aug 10, 2026
CISA due date
—
Cloudanix analysis
A flaw in the Linux network driver used by many virtual machines can cause the entire system to crash when it receives certain network packets that use a common encapsulation method.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vmxnet3_get_hdr_len() function assumes completion descriptor fields always reference the outer packet header; Geneve encapsulation can cause the device to set VMXNET3_RCD_HDR_INNER_SHIFT, making the fields point at an inner header instead. This produces mismatched protocol and ethertype values that trigger BUG_ON assertions when the outer header is UDP (Geneve) or when outer/inner IP versions differ.
Why it matters to the business
Virtual machines using the vmxnet3 paravirtual NIC with Geneve overlays can experience sudden kernel panics and reboots when receiving certain encapsulated packets, leading to unplanned downtime and service interruption.
How an attack unfolds
An attacker with the ability to inject or reflect Geneve-encapsulated traffic toward a vulnerable vmxnet3 interface crafts packets whose inner-header properties differ from the outer tunnel header. When the device signals the inner-header bit, the driver hits the BUG_ON checks and panics the guest kernel.
How to fix it
Update the Linux kernel to a version containing the referenced fix that checks VMXNET3_RCD_HDR_INNER_SHIFT early and replaces remaining BUG_ON calls with safe return-0 behavior.
How to confirm the fix worked
Confirm the presence of the upstream commit that adds the VMXNET3_RCD_HDR_INNER_SHIFT guard and converts BUG_ON statements to defensive returns; test with Geneve traffic that previously triggered the assertions.
Typical attack path
- Identify or compromise a path that can deliver Geneve-encapsulated frames to the target VM.
- Send or reflect a Geneve packet whose inner L3/L4 headers differ in protocol or IP version from the outer headers.
- Trigger the vmxnet3 completion path that sets VMXNET3_RCD_HDR_INNER_SHIFT.
- Cause vmxnet3_get_hdr_len() to evaluate the mismatched header fields and hit a BUG_ON assertion.
How to detect it
Review kernel logs for vmxnet3 BUG_ON messages referencing hdr.ipv4->protocol or eth->h_proto during Geneve traffic handling; correlate with network flows containing Geneve UDP encapsulation.
What your security team should do
- Prioritize kernel updates for any hosts or guests running vmxnet3 with Geneve overlays.
- Monitor upstream stable and distribution kernels for the fix and schedule patching within normal change windows given low EPSS.
- Consider temporarily disabling Geneve offloads or switching to an alternative vNIC type if immediate patching is not feasible.
The record
In the Linux kernel, the following vulnerability has been resolved: vmxnet3: fix BUG_ON in vmxnet3_get_hdr_len() for Geneve packets vmxnet3_get_hdr_len() assumes gdesc->rcd.v4/v6/tcp always describe the outer header, but for a Geneve-encapsulated packet the device can set them based on the inner header instead, signalled by the VMXNET3_RCD_HDR_INNER_SHIFT bit in the completion descriptor. Since the function never skips the outer encapsulation, this mismatch triggers: - BUG_ON(hdr.ipv4->protocol != IPPROTO_TCP), because the outer protocol is UDP (Geneve), not TCP. - BUG_ON(hdr.eth->h_proto != ...), when the tunnel's outer and inner IP versions differ (e.g. outer IPv6/inner IPv4 or vice versa). Check VMXNET3_RCD_HDR_INNER_SHIFT up front and bail out, since the function cannot locate the inner header it would need to parse. Also convert the remaining BUG_ON()s in this function to return 0 defensively.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|