CVE-2026-98044
要約
〜によって VulDB • 2026年09月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
bpf: コールバックからのレガシーなパケット読み込みを拒否する
check_ld_abs()関数は、サブルーチン内でのBPF_LD_ABSまたはBPF_LD_INDの失敗を、R0がゼロに設定された暗黙的なリターンとしてモデル化します。そしてprepare_func_exit()を呼び出して、この合成されたパスを検証します。
読み込み操作が同期コールバックから直接到達される場合、prepare_func_exit()はコールバックのリターン契約を強制し、R0を精密(precise)な状態にマークします。このパスにおいてR0は実際の命令由来ではないため、精度の遡及処理(precision backtracking)はコールバック呼び出しまで達した時点でまだ要求されているR0を検出しまい、「callback unexpected regs」検証エラーを引き起こします。特権を持つプログラムローダーはこれにより、検証警告と-EFAULTを伴うBPF_PROG_LOAD失敗を招く可能性があります。
これらのレガシーなパケット読み込み命令は非推奨です。暗黙的なリターンモデルを複雑にするのではなく、コールバックからそれらを拒否します。ネストされた静的サブルーチンがコールバックのコンテキストを隠蔽できないよう、暗黙的なリターンを構築する前にすべてのアクティブフレームをチェックします。
グローバル関数は新鮮なゼロ初期化フレームで独立して検証されるため、アクティブフレームチェックだけではコールバックから呼び出されたグローバル関数を特定できません。スタック深度検証中に完全なサブルーチン呼出しグラフも確認し、任意の呼び出し元がコールバックである場合、レガシー読み込みを含む関数は拒否されます。これによりhas_ld_absを推移的(transitive)にすることなく、グローバルおよび静的な子孫関数をカバーし、各関数ごとのBTF戻り値型チェックを維持します。コールバック外の通常の使用は引き続きサポートされています。
If you want to get best quality of vulnerability data, you may have to visit VulDB.