From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74F57C2BA83 for ; Wed, 12 Feb 2020 13:17:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 488B52073C for ; Wed, 12 Feb 2020 13:17:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727862AbgBLNRG (ORCPT ); Wed, 12 Feb 2020 08:17:06 -0500 Received: from 8bytes.org ([81.169.241.247]:53838 "EHLO theia.8bytes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725887AbgBLNRG (ORCPT ); Wed, 12 Feb 2020 08:17:06 -0500 Received: by theia.8bytes.org (Postfix, from userid 1000) id AAF1F20E; Wed, 12 Feb 2020 14:17:04 +0100 (CET) Date: Wed, 12 Feb 2020 14:16:53 +0100 From: Joerg Roedel To: Andy Lutomirski Cc: X86 ML , "H. Peter Anvin" , Dave Hansen , Peter Zijlstra , Thomas Hellstrom , Jiri Slaby , Dan Williams , Tom Lendacky , Juergen Gross , Kees Cook , LKML , kvm list , Linux Virtualization , Joerg Roedel Subject: Re: [PATCH 39/62] x86/sev-es: Harden runtime #VC handler for exceptions from user-space Message-ID: <20200212131652.GH20066@8bytes.org> References: <20200211135256.24617-1-joro@8bytes.org> <20200211135256.24617-40-joro@8bytes.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 11, 2020 at 02:47:05PM -0800, Andy Lutomirski wrote: > On Tue, Feb 11, 2020 at 5:53 AM Joerg Roedel wrote: > > > > From: Joerg Roedel > > > > Send SIGBUS to the user-space process that caused the #VC exception > > instead of killing the machine. Also ratelimit the error messages so > > that user-space can't flood the kernel log. > > What would cause this? CPUID? Something else? Yes, CPUID, RDTSC(P) and, most importantly, user-space mapping some IO space an accessing it, causing MMIO #VC exceptions. Especially the MMIO case has so many implications that it will not be supported at the moment. Imagine for example MMIO accesses by 32bit user-space with non-standard, non-zero based code and data segments. Or user-space changing the instruction bytes between when the #VC exception is raised and when the handler parses the instruction. Lots of checks are needed to make this work securely, and the complexity of this is not worth it at this time. Regards, Joerg