CVE-2026-68428 in Linux情報

要約

〜によって VulDB • 2026年08月10日

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

KVM: x86/mmu: ベンダーモジュールの再読み込み時のuse-after-freeを修正

mmu_destroy_caches() は pte_list_desc_cache と mmu_page_header_cache を破棄しますが、両方のポインタは変更されません。これらのポインタは kvm.ko に存在するため、ベンダーモジュールがアンロードされても kvm.ko が読み込まれたままであれば生存し続けます。

後続のベンダーモジュールの読み込み時に pte_list_desc_cache の作成に失敗した場合、その代入により pte_list_desc_cache は NULL に設定され、エラーパスで mmu_destroy_caches() が呼び出されます。mmu_page_header_cache はまだ直前のベンダーモジュールアンロード時に破棄されたキャッシュを指しています。この古くなったポインタを kmem_cache_destroy() に渡すと、slab における use-after-free が発生します。

CONFIG_KASAN=y、CONFIG_KASAN_GENERIC=y、CONFIG_KVM=m、および CONFIG_KVM_INTEL=m を設定した v7.1.3 カーネルで問題を再現できます。ワンショットテストフックにより、kvm_mmu_vendor_module_init() の2回目の呼び出し時に pte_list_desc_cache が NULL に強制されます:

1. kvm.ko と kvm-intel.ko を読み込み、両方のキャッシュを作成する。 2. kvm_intel のみをアンロードし、kvm.ko は読み込んだままにする。 3. kvm_intel を再読み込みし、-ENOMEM パスを通じて初期化を強制する。

KASAN は以下のように報告します:

BUG: KASAN: slab-use-after-free in kvm_mmu_vendor_module_init+0x5b/0x170 [kvm]
... kmem_cache_destroy+0x21/0x1d0 kvm_mmu_vendor_module_init+0x5b/0x170 [kvm]
... Allocated by task 16817: __kmem_cache_create_args+0x12c/0x3b0 __kmem_cache_create.constprop.0+0xb6/0xf0 [kvm]
kvm_mmu_vendor_module_init+0x13b/0x170 [kvm]
... Freed by task 16820: kmem_cache_destroy+0x117/0x1d0 kvm_mmu_vendor_module_exit+0x21/0x30 [kvm]

キャッシュを破棄した直後に両方のポインタをクリアすることで、保存された状態がキャッシュの寿命を反映し、繰り返しのクリーンアップが安全になります。

修正適用後、同じ注入されたベンダーモジュール再読み込みは期待通り -ENOMEM で失敗し、KASAN の報告は一切生成されません。

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

責任者

Linux

予約する

2026年07月30日

モデレーション

承諾済み

エントリ

VDB-387678

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!