JVNDB-2026-027869 | |
LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。bpf: BPF LSMが初期化されていない場合にBPF_MAP_TYPE_INODE_STORAGEの作成を拒否する対策です。CONFIG_BPF_LSM=yが設定されている場合、BPF inodeストレージマップ(BPF_MAP_TYPE_INODE_STORAGE)がカーネルにコンパイルされます。しかし、BPF LSMが起動時に明示的に有効化されていない場合(例えば、「lsm=」ブートパラメータから省略された場合)、lsm_prepare()はBPF LSMに対して一度も実行されません。結果として、BPF inodeセキュリティblobのオフセット(bpf_lsm_blob_sizes.lbs_inode)が初期化されず、予約されたstruct rcu_headの後の有効なオフセット(通常16バイト以上)に更新される代わりに、コンパイル時のデフォルトサイズである8バイトのままとなります。特権ユーザーがBPF_MAP_TYPE_INODE_STORAGEマップを作成および更新すると、bpf_inode()はinode->i_security + 8を評価します。これは誤ってinode->i_security blobの先頭にあるstruct rcu_head.funcコールバックポインタと衝突します。その後のマップ要素のクリーンアップやinodeの破棄時に、owner_storageをNULLに書き込むことでキューに入っているRCUコールバックポインタがクリアされます。rcu_do_batch()が後でキューに入ったコールバックを実行する際、アドレス0x0で命令フェッチを試みるため、即座にカーネルパニックが発生します。これを修正するために、__ro_after_init属性付きのグローバルなbpf_lsm_initializedブールフラグを導入しました。LSMフレームワークがBPF LSMの登録に成功した場合、bpf_lsm_init()内でこのフラグをtrueに設定します。inode_storage_map_alloc()内のマップ割り当てはこのフラグを条件として判定し、BPF LSMが初期化されていない場合は-EOPNOTSUPPを返します。このフェイルファスト方式により、BPF LSMのサポートインフラが存在しない場合にユーザースペースからinodeストレージマップの割り当てを防ぎ、ゾンビマップ状態の発生を回避します。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/20 |
| 登録日 | 2026/08/12 |
| 最終更新日 | 2026/08/12 |



