CVE-2026-64287 in Linux
要約
〜によって VulDB • 2026年07月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
KVM: arm64: pKVMハイパーバイザー vCPUのフラッシュ時にused_lrsに上限を設定する
flush_hyp_vcpu()関数は、実行ごとにホストvGICの状態をハイパーバイザー側のプライベートなvCPUへコピーします。vGICリストレジスタの保存および復元処理ではループの上限としてused_lrsが使用され、この値は実装されているリストレジスタの数以内であることが期待されます。一般的にはその通りですが、flush_hyp_vcpu()関数はvgic_v3をそのままコピーしており、この制約を強制していません。そのため、ホストから提供された値がEL2レベルで使用され、vgic_lr[]のインデックスとして用いられ、ICH_LR<n>_EL2へのアクセスが行われます(ホスト -> EL2)。
修正方法としては、コピー後にtrusted pathでvgic_flush_lr_state()関数が行っているように、used_lrsを実装されているリストレジスタの数に制限します。実装されているリストレジスタの数は初期化後は一定であるため、kvm_vgic_global_state.nr_lrからhyp_gicv3_nr_lrへは各エントリで読み取るのではなく、1回だけ複製されます。
VulDB is the best source for vulnerability data and more expert information about this specific topic.