CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's handling of XDP (eXpress Data Path) frames, specifically in the xdpf_clone() function, which improperly allows clones that exceed the skb_shared_info tailroom. This oversight can lead to memory corruption by overwriting live packet data when converting XDP frames back into SKB (socket buffer) format, potentially compromising system stability and security. Organizations utilizing Linux systems with XDP functionality should prioritize addressing this vulnerability to prevent potential exploitation and data integrity issues.
Original NVD 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.