CVE-2026-89906: LoongArch: BPF: Refactor jump offset calculation in tail call
In the Linux kernel, the following vulnerability has been resolved:
LoongArch: BPF: Refactor jump offset calculation in tail call
The old macro-based jmpoffset calculation derives the jump distance from a stale prior-pass code stride, which can lead to wrong branch offsets and soft lockups under extra JIT passes.
Fix this by calculating the offset directly on the absolute target: "ctx->offset[insn + 1] - ctx->idx".
To avoid a false 16-bit range check abort during size estimation, add a "ctx->image == NULL" guard to inject a safe dummy offset.
Affected Software
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
The issue affects Linux kernel systems using the LoongArch BPF JIT implementation. The provided information does not identify affected kernel versions or configuration defaults.
What is the observable impact if the flaw is triggered?
Incorrect tail-call branch offsets can be generated when extra JIT passes occur, potentially causing soft lockups.
What should be checked to determine whether a system has the fix?
Check whether the kernel includes the referenced stable commits. The fix computes the tail-call jump offset from the absolute target and uses a safe dummy offset while ctx->image is NULL during size estimation.