CVE-2026-31700CWE-362CWE-367

CVE-2026-31700

High · published May 1, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
1.2
In the wild
Unconfirmed
What it is

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

net/packet: fix TOCTOU race on mmap'd vnet_hdr in tpacket_snd()

In tpacket_snd(), when PACKET_VNET_HDR is enabled, vnet_hdr points

directly into the mmap'd TX ring buffer shared with userspace. The

kernel validates the header via __packet_snd_vnet_parse() but then

re-reads all fields later in virtio_net_hdr_to_skb(). A concurrent

userspace thread can modify the vnet_hdr fields between validation

and use, bypassing all safety checks.

The non-TPACKET path (packet_snd()) already correctly copies vnet_hdr

to a stack-local variable. All other vnet_hdr consumers in the kernel

(tun.c, tap.c, virtio_net.c) also use stack copies. The TPACKET TX

path is the only caller of virtio_net_hdr_to_skb() that reads directly

from user-controlled shared memory.

Fix this by copying vnet_hdr from the mmap'd ring buffer to a

stack-local variable before validation and use, consistent with the

approach used in packet_snd() and all other callers.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00110 · 1.2th percentile
Weaknesses
CWE-362 · Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition'); CWE-367 · Time-of-check Time-of-use (TOCTOU) Race Condition
Published
2026-05-01T18:16Z
Affected products (6)
ProductVersionsFixed in
linux/linux_kernel≥ 4.6, < 6.6.1366.6.136
linux/linux_kernel≥ 6.7, < 6.12.846.12.84
linux/linux_kernel≥ 6.13, < 6.18.256.18.25
linux/linux_kernel≥ 6.19, < 7.0.27.0.2
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (11)
EPSS history
Timeline
  • 01 MAY 13:56Z
    net/packet: fix TOCTOU race on mmap'd vnet_hdr in tpacket_snd()
    cvelistv5