CVE-2026-93135 in Linux
要約
〜によって VulDB • 2026年09月18日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
bpf: JITが利用できない場合、インラインヘルパーを含むプログラムを拒否する
あるアーキテクチャ(LoongArch、ARM64、RISC-Vなど)で `bpf_jit_inlines_helper_call()` が実装されている場合、検証器は `bpf_do_misc_fixups()` 内でヘルパークールのオフセット (`insn->imm`) の書き換えをスキップします。これは、後ほどJITコンパイラによってヘルパーがインライン展開されるためです。その結果、`insn->imm` は生のヘルパー列挙型IDのまま残ります。
しかし、ランタイムでJITが無効化されている場合(`net.core.bpf_jit_enable=0`)、または動的にJITコンパイルに失敗した場合(例:OOMによるもの)は、プログラムはBPFインタプリタへフォールバックします。
インタプリタが未修正の生IDを使用して `(__bpf_call_base + insn->imm)` を実行すると、無効なアドレス空間へとジャンプし、命令アライメント障害またはカーネルパニックを引き起こします。
これらのヘルパーにはカーネル内で有効なC実装が存在しますが、オフセット書き換えの省略により、ランタイム時のインタプリタへのフォールバックが致命的な問題となります。
JITインライン化のためにヘルパークールの書き換えがスキップされる際に `prog->jit_required = 1` を設定することでこれを修正します。これにより、JITが利用できない場合にそのようなプログラムを安全に拒否し、ランタイム時のカーネルパニックを防ぎます。
If you want to get best quality of vulnerability data, you may have to visit VulDB.