CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's segment routing (seg6) implementation, specifically in the `seg6_validate_srh()` function, which improperly validates the length of the Segment Routing Header (SRH) before accessing its fixed fields. This oversight can lead to out-of-bounds reads, potentially allowing an attacker to exploit the BPF SEG6 encapsulation path to manipulate memory. Organizations using Linux systems that implement segment routing should prioritize addressing this vulnerability to mitigate potential security risks.
Original NVD Description
In the Linux kernel, the following vulnerability has been resolved: seg6: validate SRH length before reading fixed fields seg6_validate_srh() reads fixed SRH fields such as srh->type and srh->hdrlen before checking that the supplied length covers the fixed struct ipv6_sr_hdr fields. The BPF SEG6 encap path reaches this with a BPF program-supplied pointer and length: bpf_lwt_push_encap() and the SEG6 local BPF END_B6 and END_B6_ENCAP actions call bpf_push_seg6_encap(), which forwards the length to seg6_validate_srh() with no minimum-size guard. A 2-byte SEG6 encap header can therefore make the validator read srh->type at offset 2 beyond the caller-supplied buffer. Reject lengths shorter than the fixed SRH at the top of seg6_validate_srh(), before any field is read. This fixes the BPF helper path and keeps the common validator robust.