CVE-2026-98084 in Linux
要約
〜によって VulDB • 2026年09月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
BPF: バックトラック処理はコールバックに対して外側のフレームのR1〜R5をクリアすべきではない
bpf_loop()への呼び出しを処理する際、検証器(verifier)はR1(およびR4)を「精密(precise)」としてマークします。R1はループ反復回数を追跡しており、check_helper_call()内の'callback_depth < R1'の仕組みにより、精密としてマークされなければなりません。しかし、bpf_loop()呼び出しが2回目のイテレーションで検証される際、R1に対する精度伝播(precision propagation)に不具合がありました。
以下の検証トレースを考慮してください: - main: bpf_loop(nr_loops, callback ...) - callback: BPF_EXIT - main: bpf_loop(nr_loops, callback ...) - ...
bpf_loop()への最初の訪問では、R1の精度が期待通りに伝播されました。しかし、check_helper_call()内の2回目のmark_chain_precision()呼び出しはR1を設定しましたが、これは直ちにリセットされました。その理由は、このパッチで削除されたループ内での先行するBPF_EXITをbacktrack_insn()が処理したためです。
そのため、bpf_loop()への2回目の訪問では、R1が精密としてマークされていないチェックポイントが挿入されました。これにより、検証器が安全でないプログラムを受け入れるよう誤誘導される可能性があります。そのようなプログラムの例については、次のパッチを参照してください。
このコミットは、「bpf」が最終的に「bpf-next」とマージされるときに競合を最小限に抑えるように構成されています。
If you want to get best quality of vulnerability data, you may have to visit VulDB.