【活用ガイド】

JVNDB-2026-021338

LinuxのLinux Kernelにおける配列インデックスの検証に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。bpf_core_parse_spec()関数内で負のCO-REアクセサインデックスを拒否します。CO-REアクセサ文字列はコロン区切りのインデックスで、ルートBTFタイプから対象フィールドへのパスを示します。例えば「0:1:2」はネストされた構造体メンバーを辿ります。bpf_core_parse_spec()は各コンポーネントをsscanf("%d")で解析するため、-1のような負の値が黙って受け入れられてしまいます。後続の境界チェック(access_idx = btf_vlen(t))は上限のみを監視しており、Cの整数昇格により__u16型のbtf_vlen結果がintに変換されるので、負の値は常に通過してしまいます。-1がbtf_member_bit_offset()に渡るとu32の0xffffffffにキャストされ、メンバー配列の範囲外読み込みが発生します。悪意を持って作成されたBPFプログラムがvmlinux BTFに存在する任意の構造体(例: task_struct)に負のCO-REアクセサを含む場合、CONFIG_DEBUG_INFO_BTF=y(主要ディストリビューションのデフォルト)な任意のシステムでBPF_PROG_LOAD中にカーネルが確実にクラッシュします。この脆弱性はCAP_BPF権限がある環境で到達可能です。エラー例:BUG: unable to handle page fault for address: ffffed11818b6626 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page Oops: Oops: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 0 PID: 85 Comm: poc Not tainted 7.0.0-rc6 #18 PREEMPT(full) RIP: 0010:bpf_core_parse_spec (tools/lib/bpf/relo_core.c:354) RAX: 00000000ffffffff Call Trace: TASK bpf_core_calc_relo_insn (tools/lib/bpf/relo_core.c:1321) bpf_core_apply (kernel/bpf/btf.c:9507) check_core_relo (kernel/bpf/verifier.c:19475) bpf_check (kernel/bpf/verifier.c:26031) bpf_prog_load (kernel/bpf/syscall.c:3089) __sys_bpf (kernel/bpf/syscall.c:6228) /TASKCO-REアクセサのインデックスは本質的に非負(構造体メンバーインデックス、配列要素インデックス、列挙子インデックス)であるため、解析直後にそれらを拒否します。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 7.8 (重要) [NVD値]
  • 攻撃元区分: ローカル
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 5.16 以上 6.1.175 未満
  • Linux Kernel 5.4 以上 5.15.209 未満
  • Linux Kernel 6.13 以上 6.18.33 未満
  • Linux Kernel 6.19 以上 7.0.10 未満
  • Linux Kernel 6.2 以上 6.6.141 未満
  • Linux Kernel 6.7 以上 6.12.91 未満

想定される影響

・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアが完全に停止する可能性があります。
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 配列インデックスの不適切な検証(CWE-129) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-45839
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-45839
  2. 関連文書 : bpf: reject negative CO-RE accessor indices in bpf_core_parse_spec() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/36a9012f76ba8d9189ae56a1f8bb7c87c07a1f3a)
  3. 関連文書 : bpf: reject negative CO-RE accessor indices in bpf_core_parse_spec() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/76f2ebaf79a9ae6d0737b87f045fe769e425d78f)
  4. 関連文書 : bpf: reject negative CO-RE accessor indices in bpf_core_parse_spec() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/3ff85ae79e1a74baeb916b78a63d821f6d19a994)
  5. 関連文書 : bpf: reject negative CO-RE accessor indices in bpf_core_parse_spec() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/669349b4612c26b3d7aacfa99d7174681bd19223)
  6. 関連文書 : bpf: reject negative CO-RE accessor indices in bpf_core_parse_spec() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/1c22483a2c4bbf747787f328392ca3e68619c4dc)
  7. 関連文書 : bpf: reject negative CO-RE accessor indices in bpf_core_parse_spec() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/99dbab7b5a12d8f58d5b0aa2f7a1fe656a70f4b2)
  8. 関連文書 : bpf: reject negative CO-RE accessor indices in bpf_core_parse_spec() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a9e777f856cd2f1efc106afc7bf21aef868509d5)
更新履歴

  • [2026年06月29日]
      掲載