CVE-2026-74616: xdp: reject clones that overrun skb_shared_info tailroom
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026082218-CVE-2026-74616-73b5@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: xdp: reject clones that overrun skb_shared_info tailroom xdpf_clone() clones broadcast copies into a single page and sets frame_sz to PAGE_SIZE. __xdp_build_skb_from_frame() later treats that page like a normal XDP frame and expects the usual skb_shared_info tailroom at the end of the buffer. The current check only rejects frames whose linear xdp_frame header, headroom, and packet data exceed PAGE_SIZE. A source frame backed by a larger allocation can still satisfy that check while extending into the clone's required shared-info area. When such a clone is converted back into an skb, build_skb_around() places skb_shared_info over live packet bytes and later writes can corrupt XDP return metadata. Reject clones unless their linear area fits inside SKB_WITH_OVERHEAD(PAGE_SIZE), matching the tailroom requirement already enforced by the XDP-to-skb conversion path. The Linux kernel CVE team has assigned CVE-2026-74616 to this issue. Affected and fixed versions =========================== Issue introduced in 5.14 with commit e624d4ed4aa8cc3c69d1359b0aaea539203ed266 and fixed in 5.15.216 with commit 58408982fa39f9758124cec169f42854d6f98f35 Issue introduced in 5.14 with commit e624d4ed4aa8cc3c69d1359b0aaea539203ed266 and fixed in 6.1.183 with commit 685edea27ac68d08fe4dbd3de74b858d2ad8e830 Issue introduced in 5.14 with commit e624d4ed4aa8cc3c69d1359b0aaea539203ed266 and fixed in 6.6.152 with commit ba13763d667e008e185fedf592d53846a5b457d1 Issue introduced in 5.14 with commit e624d4ed4aa8cc3c69d1359b0aaea539203ed266 and fixed in 6.12.104 with commit ef4b7c7046d29a67090de15af0da0d1ae8d1b192 Issue introduced in 5.14 with commit e624d4ed4aa8cc3c69d1359b0aaea539203ed266 and fixed in 6.18.45 with commit fab820f1691a9e26d9031f18aae1e9ce09078f92 Issue introduced in 5.14 with commit e624d4ed4aa8cc3c69d1359b0aaea539203ed266 and fixed in 7.1.9 with commit f463b6f4957c9c3fd1c75f8d3e5af4879fa609c0 Issue introduced in 5.14 with commit e624d4ed4aa8cc3c69d1359b0aaea539203ed266 and fixed in 7.2 with commit e48e8edbef2eb824201495daa5234560f632b23c Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-74616 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: net/core/xdp.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/58408982fa39f9758124cec169f42854d6f98f35 https://git.kernel.org/stable/c/685edea27ac68d08fe4dbd3de74b858d2ad8e830 https://git.kernel.org/stable/c/ba13763d667e008e185fedf592d53846a5b457d1 https://git.kernel.org/stable/c/ef4b7c7046d29a67090de15af0da0d1ae8d1b192 https://git.kernel.org/stable/c/fab820f1691a9e26d9031f18aae1e9ce09078f92 https://git.kernel.org/stable/c/f463b6f4957c9c3fd1c75f8d3e5af4879fa609c0 https://git.kernel.org/stable/c/e48e8edbef2eb824201495daa5234560f632b23c