JVNDB-2026-023179 | |
LinuxのLinux Kernelにおける不特定の脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。KVM: x86: PIRが空の場合でも__kvm_apic_update_irr内でIRRスキャンを行います。PID.ONが設定されているがPIRが空の場合には、apic_find_highest_vector()にフォールバックして既存のIRRから最高優先度の保留割り込みを正しく報告します。ネストされたVMのストレステストにおいて、kvm_cpu_has_interrupt()が保留割り込みを報告しながら、その後に呼ばれるkvm_apic_has_interrupt()(再度vmx_sync_pir_to_irr()を呼び出す)が-1を返すと、vmx_check_nested_events()で以下のWARNINGが発生します。 WARNING: CPU: 99 PID: 57767 at arch/x86/kvm/vmx/nested.c:4449 vmx_check_nested_events+0x6bf/0x6e0 [kvm_intel] Call Trace: kvm_check_and_inject_events vcpu_enter_guest.constprop.0 vcpu_run kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl __x64_sys_ioctl do_syscall_64 entry_SYSCALL_64_after_hwframe。根本原因は、送信者vCPUの__vmx_deliver_posted_interrupt()とターゲットvCPUのvmx_sync_pir_to_irr()間の競合状態にあります。送信者は単一のトランザクションではない2つの個別に原子的な操作を行います。 1. pi_test_and_set_pir(vector) -- PIRビットを設定します。 2. pi_test_and_set_on() -- PID.ONを設定します。以下の操作の割り込みがバグを引き起こします。 送信者vCPU(IPI): ターゲットvCPU(1回目のsync_pir_to_irr): B1: PIR[vector]をセット A1: pi_clear_on()を実行します。 A2: pi_harvest_pir() -> B1のビットを検出します。 A3: xchg() -> ビットを消費しPIR=0にします。 (1回目のsyncは正しいmax_irrを返します。) B2: PID.ONを1にセットします。 ターゲットvCPU(2回目のsync_pir_to_irr): C1: pi_test_on() -> TRUE(B2由来) C2: pi_clear_on() -> ON=0にします。 C3: pi_harvest_pir() -> PIRが空です。 C4: *max_irr = -1で早期リターンします。 IRRはスキャンされません。割り込み自体は失われているわけではなく、最初の同期のIRRに存在し、次のvcpu_enter_guest()のイテレーションで回復されます。しかし、誤ったmax_irr値がスプリアスなWARNINGと無駄なL2 VM-Enter/VM-Exitサイクルを引き起こします。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/08 |
| 登録日 | 2026/07/10 |
| 最終更新日 | 2026/07/10 |



