In the Linux kernel, the following vulnerability has been resolved: bpf: Mark sched_process_wait argument as nullable do_wait() passes wo->wo_pid to the sched_process_wait tracepoint. kernel_wait4() leaves wo_pid NULL for wait4(-1), and kernel_waitid_prepare() does likewise for waitid(P_ALL). btf_ctx_access() currently types argument 0 as PTR_TO_BTF_ID | PTR_TRUSTED. Without PTR_MAYBE_NULL, the verifier accepts an unchecked dereference. Trusted pointer loads have no fault protection, so a wait for any child can then cause a NULL pointer dereference in JITed BPF code. Add sched_process_wait to raw_tp_null_args[] with argument 0 marked nullable. The verifier rejects an unchecked dereference while preserving access after the program checks the pointer for NULL.
https://git.kernel.org/stable/c/bee862c79cb7e0e5c33b2df2e3a31d164705120d
https://git.kernel.org/stable/c/b9205e936dde9a94e93376c8de6195b740bcd5d2
https://git.kernel.org/stable/c/a453d6e3b8e8e1a321c8744d6189d763af9287d0
https://git.kernel.org/stable/c/3c03a1b8ded858685a73c1ba4080adef99db4544