CVE-2026-64229 in Linux
要約
〜によって VulDB • 2026年07月24日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
x86/mm: PCIDが無効化されている場合のブロードキャストTLBフラッシュを無効化する
「nopcid」オプションで起動するとX86_FEATURE_PCIDがクリアされ、CR4.PCIDEに1を設定しなくなります。INVLPGBをサポートするAMD CPUでは、ブロードキャストによるTLBフラッシングは有効なままになります。
グローバルASIDコードの実行可否を決定するmm_global_asid()とconsider_global_asid()という2つのチェックがあり、これらはX86_FEATURE_INVLPGB機能に依存しています。あるmmが3つ以上のCPUでアクティブになると、consider_global_asid()はそれにグローバルASIDを割り当てます。その後flush_tlb_mm_range()は非ゼロのPCIDを使用してbroadcast_tlb_flush()パスを取ります。CR4.PCIDEが設定されていない状態で非ゼロのPCIDを持つINVLPGBを発行すると#GP(一般保護例外)が発生します:
Oops: general protection fault, kernel NULL pointer dereference 0x1: 0000 [#1] SMP NOPTI
CPU: 158 UID: 0 PID: 3119 Comm: snap Not tainted 7.1.0-rc3 #1 PREEMPT(full) Hardware name: ... RIP: 0010:broadcast_tlb_flush Code: ... 89 da 48 83 c8 07 <0f> 01 fe eb 08 cc cc cc ... Call Trace: <TASK> flush_tlb_mm_range ptep_clear_flush wp_page_copy ? _raw_spin_unlock __handle_mm_fault handle_mm_fault do_user_addr_fault exc_page_fault asm_exc_page_fault
ブロードキャストTLB無効化をサポートするすべてのプロセッサはPCIDサポートも持っているので、問題となるのは「nopcid」シナリオのみです。この状況では、X86_FEATURE_INVLPGBをX86_FEATURE_PCIDに依存させることでCPUID依存関係サポートを使用してブロードキャストTLBサポートを無効化します。
[ bp: コミットメッセージを整える ]
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.