{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2026-46322", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2026-05-13T15:03:33.112Z", "datePublished": "2026-06-09T12:11:14.776Z", "dateUpdated": "2026-10-19T19:36:58.325Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T12:31:17.322Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntun: free page on build_skb failure in tun_xdp_one()\n\nWhen build_skb() fails in tun_xdp_one(), the function sets ret to\n-ENOMEM and jumps to the out label, which returns without freeing the\npage that vhost_net_build_xdp() allocated for the frame. As with the\nshort-frame rejection path, tun_sendmsg() discards the per-buffer error\nand still returns total_len, so vhost_tx_batch() takes the success path\nand never frees the page. Each build_skb() failure in a batch leaks one\npage-frag chunk.\n\nFree the page before taking the error path, matching the put_page() the\nother error exits of tun_xdp_one() already perform." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H", "baseScore": 7.1, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The bug is reached only through the TUN `sendmsg()` path with `TUN_MSG_PTR`, which in production is driven by host `vhost-net` processing virtio-net TX descriptors from a VM guest or a local process holding a TUN/vhost-net fd—not by the host parsing remote network packets.\nAC:L - An attacker can reliably trigger `build_skb()` failure by first pressuring the `sk_buff` slab (e.g., flooding virtio TX or other allocations) and then sending batched virtio TX frames; they control both the memory-pressure side and the batch submission side.\nPR:N - In the highest-impact scenario—a malicious tenant in a cloud/KVM guest with virtio-net and vhost-net—the attacker needs no host privileges; any guest process that can transmit on the virtio TX queue can drive this path.\nUI:N - Exploitation requires no victim interaction beyond normal VM networking; the guest attacker can trigger the leak programmatically without the host user performing any action.\nS:C - The leak consumes host kernel memory from a guest VM security context, crossing the VM/host boundary and impacting resources outside the attacker's guest security authority.\nC:N - This is a pure page reference leak with no out-of-bounds access, use-after-free, or attacker-readable disclosure; leaked pages remain in the kernel allocator and are not exposed to the attacker.\nI:N - No memory corruption, arbitrary write, or control-flow hijack occurs; the only defect is failing to `put_page()` on the `build_skb()` error path.\nA:H - Each failed `build_skb()` leaks a page-frag (~4 KiB), batches can hold up to 64 XDP buffers, and `tun_sendmsg()` masks per-buffer errors so leaks are unbounded and repeatable, enabling sustained host kernel memory exhaustion and OOM/DoS." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/tun.c" ], "versions": [ { "version": "043d222f93ab8c76b56a3b315cd8692e35affb6c", "lessThan": "26fe549b5192536b6c1c68a2dfdc8c0dcf9fa4a9", "status": "affected", "versionType": "git" }, { "version": "043d222f93ab8c76b56a3b315cd8692e35affb6c", "lessThan": "793385c154771603b8671dd8338927221e9d8d78", "status": "affected", "versionType": "git" }, { "version": "043d222f93ab8c76b56a3b315cd8692e35affb6c", "lessThan": "2638a9c1521905bb5c5d1e95c8fbc09f79148ed7", "status": "affected", "versionType": "git" }, { "version": "043d222f93ab8c76b56a3b315cd8692e35affb6c", "lessThan": "60d9c0d6cdde5420d6483c921b16fe5465eb5238", "status": "affected", "versionType": "git" }, { "version": "043d222f93ab8c76b56a3b315cd8692e35affb6c", "lessThan": "d16e38fac09a47bfcf98c1ad65a1bb53f94540f5", "status": "affected", "versionType": "git" }, { "version": "043d222f93ab8c76b56a3b315cd8692e35affb6c", "lessThan": "aa308e9dbb9acb17cacdbbce9e4504f69bac8385", "status": "affected", "versionType": "git" }, { "version": "043d222f93ab8c76b56a3b315cd8692e35affb6c", "lessThan": "4fefc6156a162a9f50035c12091a5e5130c82c6e", "status": "affected", "versionType": "git" }, { "version": "043d222f93ab8c76b56a3b315cd8692e35affb6c", "lessThan": "aa8963fdce667a42fb7f0bdd2909fadcab02f9a8", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/tun.c" ], "versions": [ { "version": "4.20", "status": "affected" }, { "version": "0", "lessThan": "4.20", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.259", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.210", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.176", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.143", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.93", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.18.35", "lessThanOrEqual": "6.18.*", "status": "unaffected", "versionType": "semver" }, { "version": "7.0.12", "lessThanOrEqual": "7.0.*", "status": "unaffected", "versionType": "semver" }, { "version": "7.1", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "5.10.259" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "5.15.210" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "6.1.176" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "6.6.143" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "6.12.93" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "6.18.35" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "7.0.12" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.20", "versionEndExcluding": "7.1" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/26fe549b5192536b6c1c68a2dfdc8c0dcf9fa4a9" }, { "url": "https://git.kernel.org/stable/c/793385c154771603b8671dd8338927221e9d8d78" }, { "url": "https://git.kernel.org/stable/c/2638a9c1521905bb5c5d1e95c8fbc09f79148ed7" }, { "url": "https://git.kernel.org/stable/c/60d9c0d6cdde5420d6483c921b16fe5465eb5238" }, { "url": "https://git.kernel.org/stable/c/d16e38fac09a47bfcf98c1ad65a1bb53f94540f5" }, { "url": "https://git.kernel.org/stable/c/aa308e9dbb9acb17cacdbbce9e4504f69bac8385" }, { "url": "https://git.kernel.org/stable/c/4fefc6156a162a9f50035c12091a5e5130c82c6e" }, { "url": "https://git.kernel.org/stable/c/aa8963fdce667a42fb7f0bdd2909fadcab02f9a8" } ], "title": "tun: free page on build_skb failure in tun_xdp_one()", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "x_adpType": "supplier", "providerMetadata": { "orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e", "shortName": "siemens-SADP", "dateUpdated": "2026-10-15T01:21:37.036Z" }, "affected": [ { "vendor": "Siemens", "product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem", "versions": [ { "status": "affected", "version": "0", "lessThan": "*", "versionType": "custom" } ], "defaultStatus": "unknown" } ], "references": [ { "url": "https://cert-portal.siemens.com/productcert/html/ssa-784472.html" } ] }, { "metrics": [ { "other": { "type": "ssvc", "content": { "id": "CVE-2026-46322", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "partial" } ], "version": "2.0.3", "timestamp": "2026-10-16T15:22:05.058396Z" } } } ], "problemTypes": [ { "descriptions": [ { "lang": "en", "type": "CWE", "cweId": "CWE-401", "description": "CWE-401 Missing Release of Memory after Effective Lifetime" } ] } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2026-10-19T19:36:58.325Z" } } ] } }