【活用ガイド】

JVNDB-2026-028055

LinuxのLinux Kernelにおける不特定の脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。x86/ftrace: 動的トランポリン内の%rip相対percpu参照の再配置についてです。CONFIG_CALL_DEPTH_TRACKINGが有効で、x86のretbleedの影響を受けるプラットフォーム(例:Skylake)でretbleed=stuffを設定した場合、動的ftraceトランポリンの登録時にトレースされた関数への最初の呼び出しでクラッシュが発生します。具体的には以下のようなエラーが生じます。 BUG: unable to handle page fault for address: ffff88817ae18880#PF: supervisor write access in kernel mode#PF: error_code(0x0002) - not-present pagePGD 4b53067 P4D 4b53067 PUD 0Oops: 0002 [#1] SMP PTICPU: 3 UID: 0 PID: 187 Comm: usleep Not tainted 7.0.10 #243 PREEMPT(full)Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.17.0-2-2 04/01/2014Code: 24 78 00 00 00 00 48 89 ea 48 89 54 24 20 48 8b b4 24 b8 00 00 00 48 8b bc 24 b0 00 00 00 48 89 bc 24 80 00 00 00 48 83 ef 05 <65> 48 c1 3d 1f a8 b6 02 05 48 8b 15 f6 00 00 00 4c 89 3c 24 4c 89Call Trace:<TASK>? find_held_lock? exc_page_fault? lock_release? __x64_sys_clock_nanosleep? lockdep_hardirqs_on_prepare? trace_hardirqs_on__x64_sys_clock_nanosleepdo_syscall_64? exc_page_fault? call_depth_return_thunkentry_SYSCALL_64_after_hwframe...Kernel panic - not syncing: Fatal exceptionこの問題は、以下の簡単な再現コードで容易にクラッシュを誘発できます。 # echo 'p __x64_sys_clock_nanosleep' > /sys/kernel/tracing/kprobe_events# echo 1 > /sys/kernel/tracing/events/kprobes/p___x64_sys_clock_nanosleep_0/enable# usleep 1GDBでクラッシュを監視すると、コール深度をインクリメントする命令に正確にポイントします。具体的には、sarq $5, %gs:__x86_call_depth(%rip)という命令です。この命令はftrace_64.Sのftrace_regs_callerによって挿入されたものであり、この生成コードはおそらく以下の導入までは正常に機能していました。 59bec00ace28 ("x86/percpu: PER_CPU_VAR()への%rip相対アドレッシング導入")この変更により、コール深度計測のアドレス指定が絶対アドレスではなく%rip相対になりました。そこで、このコードの正確な場所はトランポリンのメモリ上の位置に依存するため、対応するオフセットは実行時に調整しなければなりません。そうしないと、正しいper-cpuの__x86_call_depth値を見つけることができず、ターゲットアドレスが誤って上記のページフォルトを引き起こします。 コピーされたCALL_DEPTH_ACCOUNT命令(ftrace_regs_caller由来)の%rip相対オフセットをtext_poke_apply_relocation()を呼び出して修正します。これはx86のBPF JITコンパイラがx86_call_depth_emit_accounting()を通じて行っているのと同様の処理です。これにより、ftrace_callerとftrace_regs_callerの両方のCALL_DEPTH_ACCOUNTスロットが正しく修正されます。
CVSS による深刻度 (CVSS とは?)

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


Linux
  • Linux Kernel 6.13 以上 6.18.35 未満
  • Linux Kernel 6.19 以上 7.0.12 未満
  • Linux Kernel 6.9 以上 6.12.93 未満
  • Linux Kernel 7.1

想定される影響

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

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

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

  1. 情報不足(CWE-noinfo) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-64235
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-64235
  2. 関連文書 : x86/ftrace: Relocate %rip-relative percpu refs in dynamic trampolines - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/9edff632ca216169846f8a63a5a3dc467e239c7a)
  3. 関連文書 : x86/ftrace: Relocate %rip-relative percpu refs in dynamic trampolines - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a17dc12bfed8868e6a86f3b45c16065a70641acb)
  4. 関連文書 : x86/ftrace: Relocate %rip-relative percpu refs in dynamic trampolines - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/d59cc66b702757e3c5a711e78a38583eac0c2738)
  5. 関連文書 : x86/ftrace: Relocate %rip-relative percpu refs in dynamic trampolines - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/8093442a2d1d4b42b9340a86023ccb2afb30b93a)
更新履歴

  • [2026年08月13日]
      掲載