Messages in this thread | | | Date | Mon, 14 Jun 2021 21:27:50 +0200 | From | Borislav Petkov <> | Subject | Re: [PATCH Part1 RFC v3 14/22] x86/mm: Add support to validate memory when changing C-bit |
| |
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
| |