Re: [PATCH v5 16/16] x86/tdx: Add cmdline option to force use of ioremap_host_shared

From: Andi Kleen
Date: Fri Oct 15 2021 - 09:34:21 EST


cutting down the insane cc list.

On 10/14/2021 11:57 PM, Michael S. Tsirkin wrote:
On Thu, Oct 14, 2021 at 10:50:59PM -0700, Andi Kleen wrote:
I thought you basically create an OperationRegion of SystemMemory type,
and off you go. Maybe the OSPM in Linux is clever and protects
some memory, I wouldn't know.

I investigated this now, and it looks like acpi is using ioremap_cache(). We
can hook into that and force non sharing. It's probably safe to assume that
this is not used on real IO devices.

I think there are still some other BIOS mappings that use just plain
ioremap() though.


-Andi
Hmm don't you mean the reverse? If you make ioremap shared then OS is
protected from malicious ACPI?


Nope

If you don't make it shared then
malicious ACPI can poke at arbitrary OS memory.


When it's private it's protected and when it's shared it can be attacked



For BIOS I suspect there's no way around it, it needs to be
audited since it's executable.


The guest BIOS is attested and trusted. The original ACPI tables by the BIOS are attested and trusted too.

Just if we map the ACPI tables temporarily shared then an evil hypervisor could modify them during that time window.

-Andi