CVE-2026-31700 Details
Description
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.
A time-of-check to time-of-use (TOCTOU) race condition vulnerability has been identified in the Linux kernel's TPACKET transmission path. When the PACKET_VNET_HDR option is enabled, the virtual network header (vnet_hdr) is mapped directly to the user-space shared memory of the transmit (TX) ring buffer. The kernel initially validates this header but subsequently re-reads the fields from the shared memory, creating a window where a concurrent user-space thread could alter the header information, bypassing safety checks. This issue is unique to the TPACKET TX path, as other components that use vnet_hdr rely on stack copies, not direct memory mappings.
The vulnerability has been fixed by modifying the TPACKET transmission function to copy the virtual network header from the mmap'd ring buffer to a local stack variable before validation and use. Users should update to the latest version of the Linux kernel where this fix has been applied.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
No SSVC data is available for this CVE.
References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-362 | Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition') | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| linux linux kernel | >= 4.6, < 6.6.136 >= 6.7, < 6.12.84 >= 6.13, < 6.18.25 >= 6.19, < 7.0.2 7.1 rc1 7.1 rc2 |
CPE
Remediation
| |
Change History
7 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Sep 8, 2026 | CVE Modified | kernel.org |
| Sep 8, 2026 | CVE Modified | siemens-SADP |
| Jun 19, 2026 | CVE Modified | kernel.org |
| Jun 17, 2026 | CVE Modified | kernel.org |
| May 6, 2026 | Initial Analysis | [email protected] |
| May 3, 2026 | CVE Modified | kernel.org |
| May 1, 2026 | New CVE Received | kernel.org |