CVE-2026-46321

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

State
Published
Severity
7.1 High
Published
Jun 9, 2026
Updated
Oct 15, 2026
Reserved
May 13, 2026

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.17.1 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 6100e0237204890269e3f934acfc50d35fd6f319 to before 0a6f46a9332ad6958992d64d3b3a81a80b2ca940Affected
  • 589382f50b4a5d90d16d8bc9dcbc0e927a3e39b2 to before 0e8211fcf9426f5adddf32516ba0f400ceb9544dAffected
  • ad6b3f622ccfb4bfedfa53b6ebd91c3d1d04f146 to before e915445942af6dcea628bf66d6241641201a0c41Affected
  • d5ad89b7d01ed4e66fd04734fc63d6e78536692a to before 5b34f9e4fe2f203724a6e893d6df0316b9670057Affected
  • 049584807f1d797fc3078b68035450a9769eb5c3 to before 69863ff2720a0e9871f1a5710f2a33a94217fee0Affected
  • 049584807f1d797fc3078b68035450a9769eb5c3 to before 37a1c268c2c8090bf4dc552d732bd23ba36f8eb0Affected
  • 049584807f1d797fc3078b68035450a9769eb5c3 to before 98c67be9eb9de72465a071949e84a3cdb8fab5a3Affected
  • 049584807f1d797fc3078b68035450a9769eb5c3 to before f4feb1e20058e407cb00f45aff47f5b7e19a6bbfAffected
  • 32b0aaba5dbc85816898167d9b5d45a22eae82e9Affected
  • a9d1c27e2ee3b0ea5d40c105d6e728fc114470bbAffected
  • 8418f55302fa1d2eeb73e16e345167e545c598a5Affected
  • 5.10.223 to before 5.10.259Affected
  • 5.15.164 to before 5.15.210Affected
  • 6.1.102 to before 6.1.176Affected
  • 6.6.43 to before 6.6.143Affected
  • 5.4.281 to before 5.5Affected
  • 6.9.12 to before 6.10Affected
  • 6.10.2 to before 6.11Affected
LinuxLinux
  • 6.11Affected
  • before 6.11Not affected
  • 5.10.259 through 5.10.*Not affected
  • 5.15.210 through 5.15.*Not affected
  • 6.1.176 through 6.1.*Not affected
  • 6.6.143 through 6.6.*Not affected
  • 6.12.93 through 6.12.*Not affected
  • 6.18.35 through 6.18.*Not affected
  • 7.0.12 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.