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 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/24 |
| 登録日 | 2026/08/13 |
| 最終更新日 | 2026/08/13 |



