CVE-2026-46321

CVE-2026-46321

High · published June 9, 2026

CVSS v3.1
7.1
EPSS
0%
Percentile
2.6
In the wild
Unconfirmed
What it is

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

tun: free page on short-frame rejection in tun_xdp_one()

tun_xdp_one() returns -EINVAL on a frame shorter than ETH_HLEN without

freeing the page that vhost_net_build_xdp() allocated for it.

tun_sendmsg() discards that -EINVAL and still returns total_len, so

vhost_tx_batch() takes the success path and never frees the page; each

short frame in a batch leaks one page-frag chunk.

A local process that can open /dev/net/tun and /dev/vhost-net can hit

this path: it attaches a tun/tap device as the vhost-net backend and

feeds TX descriptors whose length minus the virtio-net header is below

ETH_HLEN. Each kick leaks the page-frag chunks for that batch, and a

tight submission loop exhausts host memory and triggers an OOM panic.

Free the page before returning -EINVAL, matching the XDP-program error

path in the same function.

The record
Technical detail
CVSS v3.1
7.1 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00133 · 2.6th percentile
Published
2026-06-09T17:16Z
Affected products (14)
ProductVersionsFixed in
linux/linux_kernel≥ 5.4.281, < 5.55.5
linux/linux_kernel≥ 5.10.223, < 5.10.2595.10.259
linux/linux_kernel≥ 5.15.164, < 5.15.2105.15.210
linux/linux_kernel≥ 6.1.102, < 6.1.1766.1.176
linux/linux_kernel≥ 6.6.43, < 6.6.1436.6.143
linux/linux_kernel≥ 6.9.12, < 6.106.10
linux/linux_kernel≥ 6.10.2, < 6.12.936.12.93
linux/linux_kernel≥ 6.13, < 6.18.356.18.35
linux/linux_kernel≥ 6.19, < 7.0.127.0.12
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (9)
EPSS history
Timeline
  • 09 JUN 12:11Z
    tun: free page on short-frame rejection in tun_xdp_one()
    cvelistv5