CVE-2026-46322
HighCVSS 7.1Exploitation Probability (EPSS)
Low risk3th percentile - higher than 3% of all known CVEs
Summary
In the Linux kernel tun driver, a memory leak occurs when build_skb() fails in tun_xdp_one(). The page allocated by vhost_net_build_xdp() is not freed, leaking one page-frag chunk per failure in a batch.
Risk Assessment
This memory leak can exhaust available system memory over time, leading to denial of service (DoS) for other processes or the entire system.
Recommendation
Apply the Linux kernel patch that adds put_page() before the error path in tun_xdp_one() to ensure the page is freed on build_skb() failure.
Original NVD description (English source)
In the Linux kernel, the following vulnerability has been resolved: tun: free page on build_skb failure in tun_xdp_one() When build_skb() fails in tun_xdp_one(), the function sets ret to -ENOMEM and jumps to the out label, which returns without freeing the page that vhost_net_build_xdp() allocated for the frame. As with the short-frame rejection path, tun_sendmsg() discards the per-buffer error and still returns total_len, so vhost_tx_batch() takes the success path and never frees the page. Each build_skb() failure in a batch leaks one page-frag chunk. Free the page before taking the error path, matching the put_page() the other error exits of tun_xdp_one() already perform.

