{"id":"CVE-2026-93135","state":"PUBLISHED","title":"bpf: Reject programs with inlined helpers if JIT is not available","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Reject programs with inlined helpers if JIT is not available\n\nWhen an architecture (such as LoongArch, ARM64, and RISC-V) implements\nbpf_jit_inlines_helper_call(), the verifier skips rewriting the helper\ncall offset (insn->imm) in bpf_do_misc_fixups(). This is because the\nhelper is expected to be inlined by the JIT compiler later. Therefore,\ninsn->imm remains as the raw helper enum ID.\n\nHowever, if JIT is disabled at runtime (net.core.bpf_jit_enable=0) or\nif JIT compilation fails dynamically (e.g., due to OOM), the program\nfalls back to the BPF interpreter.\n\nWhen the interpreter executes (__bpf_call_base + insn->imm) with the\nunpatched raw ID, it jumps into an invalid address space, triggering\nan instruction alignment fault or a kernel panic.\n\nAlthough these helpers have valid C implementations in the kernel, the\nomission of offset rewriting makes runtime interpreter fallback fatal.\n\nFix this by setting 'prog->jit_required = 1' when helper call rewriting\nis skipped for JIT inlining. This ensures that such programs are safely\nrejected if JIT is not available, preventing the runtime kernel panic.","publishedAt":"2026-09-17T16:11:36.771Z","updatedAt":"2026-10-19T09:06:08.106Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"2ddec2c80b4402c293c7e6e0881cecaaf77e8cec","status":"affected","lessThan":"21c6445366795fa3a89954e1d318e7c8afdef843","versionType":"git"},{"version":"2ddec2c80b4402c293c7e6e0881cecaaf77e8cec","status":"affected","lessThan":"f1c27922576edccb99d0257827d09bd05c0304a6","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/bpf/fixups.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.10","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.10","versionType":"semver"},{"version":"7.2.6","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/fixups.c"]}],"references":["https://git.kernel.org/stable/c/21c6445366795fa3a89954e1d318e7c8afdef843","https://git.kernel.org/stable/c/f1c27922576edccb99d0257827d09bd05c0304a6"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:34.582Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/93xxx/CVE-2026-93135.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-93135","state":"PUBLISHED","datePublished":"2026-09-17T16:11:36.771Z","dateUpdated":"2026-10-19T09:06:08.106Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-09-17T16:02:15.087Z"},"containers":{"cna":{"title":"bpf: Reject programs with inlined helpers if JIT is not available","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Reject programs with inlined helpers if JIT is not available\n\nWhen an architecture (such as LoongArch, ARM64, and RISC-V) implements\nbpf_jit_inlines_helper_call(), the verifier skips rewriting the helper\ncall offset (insn->imm) in bpf_do_misc_fixups(). This is because the\nhelper is expected to be inlined by the JIT compiler later. Therefore,\ninsn->imm remains as the raw helper enum ID.\n\nHowever, if JIT is disabled at runtime (net.core.bpf_jit_enable=0) or\nif JIT compilation fails dynamically (e.g., due to OOM), the program\nfalls back to the BPF interpreter.\n\nWhen the interpreter executes (__bpf_call_base + insn->imm) with the\nunpatched raw ID, it jumps into an invalid address space, triggering\nan instruction alignment fault or a kernel panic.\n\nAlthough these helpers have valid C implementations in the kernel, the\nomission of offset rewriting makes runtime interpreter fallback fatal.\n\nFix this by setting 'prog->jit_required = 1' when helper call rewriting\nis skipped for JIT inlining. This ensures that such programs are safely\nrejected if JIT is not available, preventing the runtime kernel panic."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"2ddec2c80b4402c293c7e6e0881cecaaf77e8cec","status":"affected","lessThan":"21c6445366795fa3a89954e1d318e7c8afdef843","versionType":"git"},{"version":"2ddec2c80b4402c293c7e6e0881cecaaf77e8cec","status":"affected","lessThan":"f1c27922576edccb99d0257827d09bd05c0304a6","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/bpf/fixups.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.10","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.10","versionType":"semver"},{"version":"7.2.6","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/fixups.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/21c6445366795fa3a89954e1d318e7c8afdef843"},{"url":"https://git.kernel.org/stable/c/f1c27922576edccb99d0257827d09bd05c0304a6"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T09:06:08.106Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.10","versionEndExcluding":"7.2.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.10","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}