[libvirt PATCH 1/2] tools: fix handling of CPU family/model/stepping in SEV validation

Erik Skultety eskultet at redhat.com
Tue Aug 29 09:05:42 UTC 2023


On Fri, Aug 25, 2023 at 01:52:57PM +0100, Daniel P. Berrangé wrote:
> The SEV-ES boot measurement includes the initial CPU register state
> (VMSA) and one of the fields includes the CPU identification. When
> building a VMSA blob we get the CPU family/model/stepping from the
> host capabilities, however, the VMSA must reflect the guest CPU not
> host CPU. Thus using host capabilities is only when whe the guest
> has the 'host-passthrough' CPU mode active. With 'host-model' it is
> cannot be assumed host and guest match, because QEMU may not (yet)
> have a named CPU model for a given host CPU.
> 
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> ---
>  tools/virt-qemu-sev-validate | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/tools/virt-qemu-sev-validate b/tools/virt-qemu-sev-validate
> index 209f19a4a8..c279741004 100755
> --- a/tools/virt-qemu-sev-validate
> +++ b/tools/virt-qemu-sev-validate
> @@ -1054,6 +1054,11 @@ class LibvirtConfidentialVM(ConfidentialVM):
>                  raise InsecureUsageException(
>                      "Using CPU SKU from capabilities is not secure")
>  
> +            mode = doc.xpath("/domain/cpu/@mode")
> +            if mode != "host-passthrough":
> +                raise UnsupportedUsageException(
> +                    "Using CPU family/model/stepping from host not possible unless 'host-passthrough' is used")
> +
>              sig = capsdoc.xpath("/capabilities/host/cpu/signature")
>              if len(sig) != 1:
>                  raise UnsupportedUsageException(
> -- 
> 2.41.0
> 

Reviewed-by: Erik Skultety <eskultet at redhat.com>



More information about the libvir-list mailing list