Thread (100 messages) 100 messages, 8 authors, 2021-07-05

Re: [PATCH Part1 RFC v3 14/22] x86/mm: Add support to validate memory when changing C-bit

From: Borislav Petkov <bp@alien8.de>
Date: 2021-06-14 19:28:05
Also in: kvm, linux-crypto, linux-efi, linux-mm, lkml, platform-driver-x86

On Mon, Jun 14, 2021 at 08:05:51AM -0500, Brijesh Singh wrote:
Guest OS depend on the hypervisor to assist in this operation. The loop
will terminate only after the hypervisor completes the requested
operation. Guest is not protecting itself from DoS type of attack. A
guest should not proceed until hypervisor performs the request page
state change in the RMP table.
Some of that could be in a comment over that loop, so that it is clear
what the guest strategy is.
Let me understand, are you saying that hypervisor could trick us into
believing that page state change completed without actually changing it ?
Nah, I'm just saying that you should verify those ->cur_entry and
->end_entry values.

Of course the guest doesn't protect itself against DoS types of attacks
but this function page_state_vmgexit() here could save ->cur_entry
and ->end_entry on function entry and then compare it each time the
hypercall returns to make sure HV is not doing some shenanigans with
the entries range or even has a bug or so. I.e., it has not changed
->end_entry or ->cur_entry is not going backwards into the buffer.

I know, if uncaught here, it probably will explode later but a cheap
sanity check like that doesn't hurt to have just in case.

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help