In the Linux kernel, the following vulnerability has been resolved: bpf: Check params size before reading reserved fields bpf_crypto_ctx_create() is a kfunc whose second argument is declared with the __sz annotation, so the verifier only guarantees that params__sz bytes of params are valid. The function nevertheless reads params->reserved[0] and params->reserved[1] (offsets 14 and 15) before comparing params__sz against the size of struct bpf_crypto_params, so a BPF program can pass a shorter buffer and have the kernel read past the region that was validated for it. Move the size check in front of the reserved field reads.
https://git.kernel.org/stable/c/e03253f5d65ebcd2a6d479f140c3bd9c7e4fb84a
https://git.kernel.org/stable/c/cd12d3e08620257fbcaa262785d7f4b9473afc7a
https://git.kernel.org/stable/c/a11212910cf09b2fe8db9afa41ef60c4f81879c5
https://git.kernel.org/stable/c/86a0e945fb645ea90233fde239cd2de79f01974c