HIGH Introduced in 4.2
vmxnet3 Geneve Panic
CVE-2026-68299
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
KernelScan AI7.5HIGH
01Description
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.
02KernelScan AI Analysis
Risk summary
A remote attacker who can send Geneve-encapsulated packets to a system using a vmxnet3 network adapter (VMware paravirtualized NIC) can trigger kernel BUG_ON assertions in the header-length parsing function, causing an immediate kernel panic. No privileges are required on the target system; only network reachability to the vmxnet3 interface is needed.
Vulnerability analysis
The vmxnet3 driver's header-length parsing function assumes that completion descriptor fields always describe the outer packet header, but for Geneve-encapsulated packets the virtual device may populate them based on the inner header instead, indicated by a bit in the completion descriptor. When this happens, the function misinterprets the packet structure and triggers kernel assertions that immediately panic the system — for example, because the outer protocol is UDP (Geneve) rather than TCP, or because the outer and inner IP versions differ. The fix checks the inner-header indicator bit up front and returns early when set, since the function cannot locate the inner header it would need to parse; it also converts all remaining assertions to graceful error returns so that unexpected packet formats never crash the kernel. The vulnerability is reachable by any attacker who can deliver Geneve-encapsulated network packets to a system equipped with a vmxnet3 adapter, which is specific to VMware virtualized environments, and requires no privileges on the target.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.1 | 4.2 | 6.1.183 | 28e382646417 |
| 6.12 | 4.2 | 6.12.101 | 28cb5d8d13b4 |
| 5.10 | 4.2 | 5.10.265 | 2ddf51fcb6dd |
| mainline | 4.2 | 7.2 | 34a71f5361fc |
| 6.18 | 4.2 | 6.18.42 | 4fdb0f162ccd |
| 6.6 | 4.2 | 6.6.148 | 667b6e52048e |
| 7.1 | 4.2 | 7.1.6 | b28596baf87e |
| 5.15 | 4.2 | 5.15.216 | fbab6b73cc08 |