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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
e624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < 58408982fa39f9758124cec169f42854d6f98f35affectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < 685edea27ac68d08fe4dbd3de74b858d2ad8e830affectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < ba13763d667e008e185fedf592d53846a5b457d1affectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < ef4b7c7046d29a67090de15af0da0d1ae8d1b192affectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < fab820f1691a9e26d9031f18aae1e9ce09078f92affectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < f463b6f4957c9c3fd1c75f8d3e5af4879fa609c0affectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < e48e8edbef2eb824201495daa5234560f632b23caffected
Linux Linux
Default version status: affected
5.14affected0 to < 5.14unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.152 to ≤ 6.6.*unaffected6.12.104 to ≤ 6.12.*unaffected6.18.45 to ≤ 6.18.*unaffected7.1.9 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- 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 ↗