Cyber Resilience

CVE-2026-31700

Race Condition in Linux Kernel 4.6 – 6.6.136

Published
01 May 2026
Modified
06 May 2026
Patch / advisory
CVSS Score v3.1 7.8
Click a component to see what it means
Raw vectorCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
EPSS Score 0.0010 1th percentile
Risk Priority 54 floored blend · peak EPSS

Summary

CVE-2026-31700 is a high-severity Race Condition (CWE-362) vulnerability in Linux Linux Kernel. Its CVSS base score is 7.8 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploitation for Privilege Escalation (T1068); ranked at the 1th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to SC-39 (Process Isolation) and SC-4 (Information in Shared System Resources) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-31700 is a time-of-check-to-time-of-use (TOCTOU) race condition in the Linux kernel's net/packet subsystem, specifically within the tpacket_snd() function. The vulnerability arises when PACKET_VNET_HDR is enabled and vnet_hdr points directly into an mmap'd TX ring buffer shared with userspace. The kernel validates the header using __packet_snd_vnet_parse(), but later re-reads the fields in virtio_net_hdr_to_skb(), allowing modifications in the interim. This issue is unique to the TPACKET TX path, as other vnet_hdr consumers like packet_snd(), tun.c, tap.c, and virtio_net.c properly copy data to stack-local variables.

A local attacker with low privileges (AV:L/AC:L/PR:L) can exploit this by running a concurrent userspace thread that modifies the vnet_hdr fields in the shared mmap'd ring buffer after validation but before the kernel's subsequent read. This bypasses all safety checks, potentially leading to high-impact confidentiality, integrity, and availability violations (C:H/I:H/A:H), as scored at CVSS 7.8 (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H). The attacker requires access to a system running a vulnerable kernel with TPACKET and PACKET_VNET_HDR in use.

Mitigation involves applying upstream kernel patches, such as those in the referenced stable commits (e.g., 28324a3b62d9ce7f9bdd65a8ce63f382041d1b27, 2c054e17d9d41f1020376806c7f750834ced4dc5), which fix the issue by copying vnet_hdr from the mmap'd ring buffer to a stack-local variable before validation and use, aligning with the approach in packet_snd() and other kernel consumers.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

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…

more

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.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1068 Exploitation for Privilege Escalation Privilege Escalation
Adversaries may exploit software vulnerabilities in an attempt to elevate privileges.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2024-27404Same product: Linux Linux Kernel
CVE-2024-40953Same product: Linux Linux Kernel
CVE-2025-38242Same product: Linux Linux Kernel
CVE-2026-53108Same product: Linux Linux Kernel
CVE-2024-27058Same product: Linux Linux Kernel
CVE-2025-37988Same product: Linux Linux Kernel
CVE-2024-26585Same product: Linux Linux Kernel
CVE-2024-26708Same product: Linux Linux Kernel
CVE-2023-53520Same product: Linux Linux Kernel
CVE-2024-53124Same product: Linux Linux Kernel

Affected Assets

linux
linux kernel
7.1 · 4.6 — 6.6.136 · 6.7 — 6.12.84 · 6.13 — 6.18.25

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)

Validate
Prove the fix (OWASP ASVS)
  • V10.4.2
  • V10.4.5
  • V15.1.3
  • V15.4.1

Mitigating Controls (NIST 800-53 r5) AI

Maintaining separate execution domains for each process structurally eliminates unintended concurrent access to the same shared resources.

Preventing unintended information transfer through shared system resources directly addresses the improper concurrent modification that defines a race condition.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 mostly match
prevents

Secure SDLC practices directly require proper synchronization primitives and concurrency testing that prevent race conditions.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Security testing can detect race conditions, but does not prevent them at design or coding time.

prevents

Secure SDLC mandates concurrency controls and synchronization primitives that directly prevent race conditions.

prevents

Application security requirements can specify thread-safety and locking rules, but do not prescribe implementation details.

prevents

Secure architecture principles require proper synchronization and resource isolation, addressing the root cause of CWE-362.

prevents

Secure coding standards explicitly forbid unsafe concurrent access patterns and mandate atomic operations or locks.

none

Change management reduces introduction of concurrency bugs during updates, yet does not address the weakness itself.

References