CVE-2024-58060 in Linux
要約
〜によって VulDB • 2026年06月13日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
bpf: モジュールポインタを使用し、モジュールのBTF IDが欠落しているstruct_ops登録を拒否する
CONFIG_MODULES=nの場合、bpf_struct_opsでUAF(Use-After-Free)レポートが発生しています。具体的には、「struct module *owner」メンバを持つtcp_congestion_opsに関する報告です。
「struct module *owner」メンバを持つstruct_opsについては、通常のカーネルモジュールまたはbpf_struct_opsのいずれかによって拡張可能です。参照カウント処理にはbpf_try_module_get()が使用され、所有者ポインタに基づいて異なる参照カウントが行われます。CONFIG_MODULES=nの場合、「struct module」のBTF IDが欠落します:
WARN: resolve_btfids: unresolved symbol module
その結果、bpf_try_module_get()は正しい参照カウント処理を実行できません。
すべてのサブシステムのstruct_opsに「struct module *owner」メンバが必要というわけではありません(例:最近のsched_ext_opsなど)。
このパッチは、「struct module *」メンバを持ち、「struct module」のBTF IDが欠落している場合、bpf_struct_ops登録を無効化するためのものです。このテストのために、btf_type_is_fwd()ヘルパー関数がbtf.hヘッダファイルに移動されました。
これはbpf_struct_ops導入当初から存在しており、多くの変更を経てきました。Fixesタグは、本パッチがクリーンに適用できる最近のコミットに設定されています。CONFIG_MODULES=nの設定は一般的ではなく、またこの問題の歴史も考慮し、bpf-nextを対象とします。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.