Description
In the Linux kernel, the following vulnerability has been resolved: bpf: Reject fragmented frames in devmap Devmap broadcast redirects clone the packet for all but the last destination. For native XDP, that clone path copies only the linear xdp_frame data, while fragmented frames keep skb_shared_info in tailroom outside the linear area. Cloning such a frame leaves XDP_FLAGS_HAS_FRAGS set but without valid frag metadata, and the later free path can interpret uninitialized tail data as skb_shared_info, leading to an out-of-bounds access during frame return. Reject fragmented native XDP frames in dev_map_enqueue_clone(). Add the same restriction to the generic XDP clone path in dev_map_redirect_clone(). Generic XDP represents fragmented packets as nonlinear skbs, and rejecting them here keeps clone-based broadcast support aligned between native and generic XDP.
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 < 47baddc856ae7e93a565dd9deeb797999b179466affectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < 07a4c11ee8ef4abcb39d922e9e410ae269671cdfaffectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < bccbab36ff228e0825eb85d9b0f9b8434cd0a399affectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < c5b4f5efcb55c1af3fe44ff712d31b7fb098a831affectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < a9bb2d9c798cb62a4050a991c27b752770c33afeaffectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < 51d07c12ca411e692c424ecdabf077f1e61a61beaffectede624d4ed4aa8cc3c69d1359b0aaea539203ed266 to < aa496720618f1a6054f1c870bf10b4f6c99bf656affected
Linux Linux
Default version status: affected
5.14affected0 to < 5.14unaffected5.15.212 to ≤ 5.15.*unaffected6.1.178 to ≤ 6.1.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.96 to ≤ 6.12.*unaffected6.18.39 to ≤ 6.18.*unaffected7.1.4 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/47baddc856ae7e93a565dd9deeb797999b179466 ↗
- https://git.kernel.org/stable/c/07a4c11ee8ef4abcb39d922e9e410ae269671cdf ↗
- https://git.kernel.org/stable/c/bccbab36ff228e0825eb85d9b0f9b8434cd0a399 ↗
- https://git.kernel.org/stable/c/c5b4f5efcb55c1af3fe44ff712d31b7fb098a831 ↗
- https://git.kernel.org/stable/c/a9bb2d9c798cb62a4050a991c27b752770c33afe ↗
- https://git.kernel.org/stable/c/51d07c12ca411e692c424ecdabf077f1e61a61be ↗
- https://git.kernel.org/stable/c/aa496720618f1a6054f1c870bf10b4f6c99bf656 ↗