High severity · published Jun 9, 2026
CVE-2026-46321
tun: free page on short-frame rejection in tun_xdp_one()
7.1
CVSS
0.1%
EPSS
No
On KEV
Description
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.
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H
Attack vector
Local
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
None
Integrity
None
Availability
High
Scope
Changed
Exploitation
Is it being used?
Exploit prediction (EPSS)0.1% · higher than 3% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
KE
Kernel · Linux
5.4.281 before 5.5; 5.10.223 before 5.10.259; 5.15.164 before 5.15.210; 6.1.102 before 6.1.176; 6.6.43 before 6.6.143; 6.9.12 before 6.10; +8 more · source: NVD
LI
Linux · Linux
6100e0237204890269e3f934acfc50d35fd6f319 before 0a6f46a9332ad6958992d64d3b3a81a80b2ca940; 589382f50b4a5d90d16d8bc9dcbc0e927a3e39b2 before 0e8211fcf9426f5adddf32516ba0f400ceb9544d; ad6b3f622ccfb4bfedfa53b6ebd91c3d1d04f146 before e915445942af6dcea628bf66d6241641201a0c41; d5ad89b7d01ed4e66fd04734fc63d6e78536692a before 5b34f9e4fe2f203724a6e893d6df0316b9670057; 049584807f1d797fc3078b68035450a9769eb5c3 before 69863ff2720a0e9871f1a5710f2a33a94217fee0; 049584807f1d797fc3078b68035450a9769eb5c3 before 37a1c268c2c8090bf4dc552d732bd23ba36f8eb0; +13 more · source: vendor