In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix array bounds error with may_goto
maygoto uses an additional 8 bytes on the stack, which causes the interpreters[] array to go out of bounds when calculating index by stacksize.
If a BPF program is rewritten, re-evaluate the stack size. For non-JIT cases, reject loading directly.
For non-JIT cases, calculating interpreters[idx] may still cause out-of-bounds array access, and just warn about it.
For jitrequested cases, the execution of bpffunc also needs to be warned. So move the definition of function _bpfprogret0warn out of the macro definition CONFIGBPFJITALWAYSON.