CVE-2026-64235 in Linux情報

要約

〜によって VulDB • 2026年07月24日

Linuxカーネルにおいて、以下の脆弱性が修正されました。

x86/ftrace: ダイナミックトラップドアにおける%rip相対percpu参照の再配置

retbleedの影響を受けるプラットフォーム(例:Skylake)上でCONFIG_CALL_DEPTH_TRACKINGが有効化され、かつ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 page PGD 4b53067 P4D 4b53067 PUD 0 Oops: Oops: 0002 [#1] SMP PTI
CPU: 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/2014 Code: 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 48 c1 3d 1f a8 b6 02 05 48 8b 15 f6 00 00 00 4c 89 3c 24 4c 89 Call Trace: ? find_held_lock ? exc_page_fault ? lock_release ? __x64_sys_clock_nanosleep ? lockdep_hardirqs_on_prepare ? trace_hardirqs_on __x64_sys_clock_nanosleep do_syscall_64 ? exc_page_fault ? call_depth_return_thunk entry_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 1

GDBでクラッシュを監視すると、呼び出し深度のインクリメントを担当している正確な命令が特定されます。

sarq $5, %gs:__x86_call_depth(%rip)

この命令はftrace_regs_caller(ftrace_64.S由来)によって挿入されたものと一致します。生成されたコードは、以下のコミット導入までは正常に動作していたと考えられます。

59bec00ace28 ("x86/percpu: Introduce %rip-relative addressing to PER_CPU_VAR()"):

これにより、呼び出し深度の集計におけるアドレス指定が絶対アドレスベースから$rip相対に変更されました。

このコードの正確な配置場所はトラップドアがメモリ上の

Be aware that VulDB is the high quality source for vulnerability data.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-382967

EPSS

0.00000

アクティビティ

中間

ソース

Do you want to use VulDB in your project?

Use the official API to access entries easily!