{"id":"CVE-2026-98059","state":"PUBLISHED","title":"bpf: Mark sched_process_wait argument as nullable","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Mark sched_process_wait argument as nullable\n\ndo_wait() passes wo->wo_pid to the sched_process_wait tracepoint.\nkernel_wait4() leaves wo_pid NULL for wait4(-1), and\nkernel_waitid_prepare() does likewise for waitid(P_ALL).\n\nbtf_ctx_access() currently types argument 0 as PTR_TO_BTF_ID |\nPTR_TRUSTED. Without PTR_MAYBE_NULL, the verifier accepts an unchecked\ndereference. Trusted pointer loads have no fault protection, so a wait for\nany child can then cause a NULL pointer dereference in JITed BPF code.\n\nAdd sched_process_wait to raw_tp_null_args[] with argument 0 marked\nnullable. The verifier rejects an unchecked dereference while preserving\naccess after the program checks the pointer for NULL.","publishedAt":"2026-09-25T10:24:04.788Z","updatedAt":"2026-10-19T09:13:06.971Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"b2fc4b17fc13810ef440fb323fad3981cd174985","status":"affected","lessThan":"bee862c79cb7e0e5c33b2df2e3a31d164705120d","versionType":"git"},{"version":"838a10bd2ebfe11a60dd67687533a7cfc220cc86","status":"affected","lessThan":"3c03a1b8ded858685a73c1ba4080adef99db4544","versionType":"git"},{"version":"838a10bd2ebfe11a60dd67687533a7cfc220cc86","status":"affected","lessThan":"b9205e936dde9a94e93376c8de6195b740bcd5d2","versionType":"git"},{"version":"838a10bd2ebfe11a60dd67687533a7cfc220cc86","status":"affected","lessThan":"a453d6e3b8e8e1a321c8744d6189d763af9287d0","versionType":"git"},{"version":"6.12.6","status":"affected","lessThan":"6.12.111","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/bpf/btf.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.13","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.13","versionType":"semver"},{"version":"6.12.111","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.7","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/bpf/btf.c"]}],"references":["https://git.kernel.org/stable/c/bee862c79cb7e0e5c33b2df2e3a31d164705120d","https://git.kernel.org/stable/c/3c03a1b8ded858685a73c1ba4080adef99db4544","https://git.kernel.org/stable/c/b9205e936dde9a94e93376c8de6195b740bcd5d2","https://git.kernel.org/stable/c/a453d6e3b8e8e1a321c8744d6189d763af9287d0"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:43.249Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/98xxx/CVE-2026-98059.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-98059","state":"PUBLISHED","datePublished":"2026-09-25T10:24:04.788Z","dateUpdated":"2026-10-19T09:13:06.971Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-09-25T10:19:56.072Z"},"containers":{"cna":{"title":"bpf: Mark sched_process_wait argument as nullable","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Mark sched_process_wait argument as nullable\n\ndo_wait() passes wo->wo_pid to the sched_process_wait tracepoint.\nkernel_wait4() leaves wo_pid NULL for wait4(-1), and\nkernel_waitid_prepare() does likewise for waitid(P_ALL).\n\nbtf_ctx_access() currently types argument 0 as PTR_TO_BTF_ID |\nPTR_TRUSTED. Without PTR_MAYBE_NULL, the verifier accepts an unchecked\ndereference. Trusted pointer loads have no fault protection, so a wait for\nany child can then cause a NULL pointer dereference in JITed BPF code.\n\nAdd sched_process_wait to raw_tp_null_args[] with argument 0 marked\nnullable. The verifier rejects an unchecked dereference while preserving\naccess after the program checks the pointer for NULL."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"b2fc4b17fc13810ef440fb323fad3981cd174985","status":"affected","lessThan":"bee862c79cb7e0e5c33b2df2e3a31d164705120d","versionType":"git"},{"version":"838a10bd2ebfe11a60dd67687533a7cfc220cc86","status":"affected","lessThan":"3c03a1b8ded858685a73c1ba4080adef99db4544","versionType":"git"},{"version":"838a10bd2ebfe11a60dd67687533a7cfc220cc86","status":"affected","lessThan":"b9205e936dde9a94e93376c8de6195b740bcd5d2","versionType":"git"},{"version":"838a10bd2ebfe11a60dd67687533a7cfc220cc86","status":"affected","lessThan":"a453d6e3b8e8e1a321c8744d6189d763af9287d0","versionType":"git"},{"version":"6.12.6","status":"affected","lessThan":"6.12.111","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/bpf/btf.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.13","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.13","versionType":"semver"},{"version":"6.12.111","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.7","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/bpf/btf.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/bee862c79cb7e0e5c33b2df2e3a31d164705120d"},{"url":"https://git.kernel.org/stable/c/3c03a1b8ded858685a73c1ba4080adef99db4544"},{"url":"https://git.kernel.org/stable/c/b9205e936dde9a94e93376c8de6195b740bcd5d2"},{"url":"https://git.kernel.org/stable/c/a453d6e3b8e8e1a321c8744d6189d763af9287d0"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T09:13:06.971Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.6","versionEndExcluding":"6.12.111"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.13","versionEndExcluding":"6.18.53"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.13","versionEndExcluding":"7.2.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.13","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}