| Summary |
Linuxカーネルにおいて、以下の脆弱性が修正されました。KVMのnSVMで、ネストされたTSCスケーリングサポートに関してアサートを行うのではなく、チェックを実施するようになりました。ネストされたSVMのVMRUN時に、L1のMSR_AMD64_TSC_RATIOがKVMのデフォルトから乖離している場合に、TSCスケーリングがL1に露出しているとアサートせず、代わりにネストされたTSCスケーリングサポートをチェックします。ユーザースペースはMSRを書き込み、その後ゲストのCPUIDを更新して機能を隠すことで(CPUIDの修正はKVM_RUN実行前であればいつでも許可されます)、任意にWARNをトリガーできます。例えば、KVMのstate_testセルフテストを改変し、新規のVM+vCPUの状態復元後に以下の操作を実行すると永続的にWARNが発生します。 vcpu_set_msr(vcpu, MSR_AMD64_TSC_RATIO, 0); vcpu_clear_cpuid_feature(vcpu, X86_FEATURE_TSCRATEMSR); 発生するWARNの内容は以下の通りです。 ------------[ cut here ]------------ WARNING: CPU: 164 PID: 62565 at arch/x86/kvm/svm/nested.c:699 nested_vmcb02_prepare_control+0x3d6/0x3f0 [kvm_amd] ...(省略) 注意として、ネストされた#VMEXITのパスにも同様の問題が存在しますが、こちらは異なる修正が必要で、別途対応されます。
|