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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E357C433F5 for ; Tue, 4 Oct 2022 04:22:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E2C8C6B0072; Tue, 4 Oct 2022 00:22:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DDAD16B0073; Tue, 4 Oct 2022 00:22:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C7CAB6B0074; Tue, 4 Oct 2022 00:22:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id B43BA6B0072 for ; Tue, 4 Oct 2022 00:22:02 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id C4A131A0327 for ; Tue, 4 Oct 2022 04:22:01 +0000 (UTC) X-FDA: 79981969242.19.DF72022 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by imf24.hostedemail.com (Postfix) with ESMTP id 66B65180017 for ; Tue, 4 Oct 2022 04:22:01 +0000 (UTC) Received: by mail-pl1-f175.google.com with SMTP id n7so11663600plp.1 for ; Mon, 03 Oct 2022 21:22:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date; bh=Uece0fM7JiJORIh7QBlH2yQn1WOcaEDf7Srsu/hsgUw=; b=IZPCBJgARGka0cb7Qhti4Q0beiVA8VD+iN0oph+SF1rux57WDNrOg/IH/L2x8sF66T wE1b/47QrbUn/SS4rziRMS8qZhqgjpEkP5cpCXXbtgH5Bo+tSWTz06ERHb+jcyYipBRf Tfqd8ab5NKyZQQkEKz8IN56bLeH1Rh/dfyOqo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date; bh=Uece0fM7JiJORIh7QBlH2yQn1WOcaEDf7Srsu/hsgUw=; b=LaYXxSPMSeRscDiAJ1rjtcuMrP6Fg52w9jLyYmPX1Z8ruBLsp6Ngm5VpLZnA9bD/V5 LK4QzNq5j21dgDSEyuvri9nhgKJt6fKshrMMWwBA99nQhVQdEatbj2YieNE1ZVCnzxbp //Ih3lRDsbto622B9mO740zZTWg1Iv99gOLnE22clQOyRxh49dzFNqHYpaKY/hCEz/TB frM+sv6qyAy2qHcllBDxt2hqb7xpenCg18P+vr51EmBFI4+nsorB30v+Zi7QWgrGSNNM aeCrNLnOFNv4kzF9pUGDWCTKxKlFXpubEoYf2jmlMUTe3WO5inUot2QVNhaw9TYjDipl WlMQ== X-Gm-Message-State: ACrzQf3mKEKnsBjpv7T8U088lfu3cAI3hWF07X0KezyK8ZFXm6mE/txb MnG62H7w1WR5muZd5waxEUf4qQ== X-Google-Smtp-Source: AMsMyM61KNxyPA9BhzyQ+UiKn0Jm9LQ+eZMj7fa8DZwgn3vRmElmfsAwichq5aJoTDxwBEmVW2pxWw== X-Received: by 2002:a17:902:7408:b0:17b:546a:17 with SMTP id g8-20020a170902740800b0017b546a0017mr23824925pll.134.1664857320258; Mon, 03 Oct 2022 21:22:00 -0700 (PDT) Received: from www.outflux.net (smtp.outflux.net. [198.145.64.163]) by smtp.gmail.com with ESMTPSA id e3-20020a17090301c300b001782f94f8ebsm8086293plh.3.2022.10.03.21.21.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Oct 2022 21:21:59 -0700 (PDT) Date: Mon, 3 Oct 2022 21:21:58 -0700 From: Kees Cook To: Andy Lutomirski Cc: Rick Edgecombe , x86@kernel.org, "H . Peter Anvin" , Thomas Gleixner , Ingo Molnar , linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-api@vger.kernel.org, Arnd Bergmann , Balbir Singh , Borislav Petkov , Cyrill Gorcunov , Dave Hansen , Eugene Syromiatnikov , Florian Weimer , "H . J . Lu" , Jann Horn , Jonathan Corbet , Mike Kravetz , Nadav Amit , Oleg Nesterov , Pavel Machek , Peter Zijlstra , Randy Dunlap , "Ravi V . Shankar" , Weijiang Yang , "Kirill A . Shutemov" , joao.moreira@intel.com, John Allen , kcc@google.com, eranian@google.com, rppt@kernel.org, jamorris@linux.microsoft.com, dethoma@microsoft.com Subject: Re: [PATCH v2 22/39] mm: Don't allow write GUPs to shadow stack memory Message-ID: <202210032119.EF573F9E@keescook> References: <20220929222936.14584-1-rick.p.edgecombe@intel.com> <20220929222936.14584-23-rick.p.edgecombe@intel.com> <202210031134.B0B6B37@keescook> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1664857321; a=rsa-sha256; cv=none; b=Y9qt95fZnMrT21Kz2ZoQOKflfAf/SCinOXxL+ONG0gMKIORTHOul13dPdx0eJvDYV4qacw 8gk7+F2yhz8vdpY/tAs+XDvGMEHpH6nYKCey8Gr29zXfXQrurjf7+VthgVfqVHp9Va/4SY TCiSZiLQaTx/XtKefsVY4RSEnO9h8y4= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=IZPCBJgA; spf=pass (imf24.hostedemail.com: domain of keescook@chromium.org designates 209.85.214.175 as permitted sender) smtp.mailfrom=keescook@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1664857321; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Uece0fM7JiJORIh7QBlH2yQn1WOcaEDf7Srsu/hsgUw=; b=IP7bXN1+7cWXdrdR0TeH1MScay+TgGG/37iYONIiH4lP9clqyDJWR3MnFfgEgwSLZii0l5 gMfzfwACM5BgLDCC/hrGWznc8KwCx6SVyPLdeZuAuWk451sIc0lWkVRd7gU0zyNYw7VKlx SdS+cHu9t/fMSD6DEkrJSPBbSEYhg84= X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 66B65180017 X-Rspam-User: Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=IZPCBJgA; spf=pass (imf24.hostedemail.com: domain of keescook@chromium.org designates 209.85.214.175 as permitted sender) smtp.mailfrom=keescook@chromium.org; dmarc=pass (policy=none) header.from=chromium.org X-Stat-Signature: x4mjo8f4896tqm8bhz379grw9zaeqqqn X-HE-Tag: 1664857321-94770 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Mon, Oct 03, 2022 at 03:49:18PM -0700, Andy Lutomirski wrote: > On 10/3/22 11:39, Kees Cook wrote: > > On Thu, Sep 29, 2022 at 03:29:19PM -0700, Rick Edgecombe wrote: > > > [...] > > > Still allow FOLL_FORCE to write through shadow stack protections, as it > > > does for read-only protections. > > > > As I asked in the cover letter: why do we need to add this for shstk? It > > was a mistake for general memory. :P > > For debuggers, which use FOLL_FORCE, quite intentionally, to modify text. > And once a debugger has ptrace write access to a target, shadow stacks > provide exactly no protection -- ptrace can modify text and all registers. i.e. via ptrace? Yeah, I grudgingly accept the ptrace need for FOLL_FORCE. > But /proc/.../mem may be a different story, and I'd be okay with having > FOLL_PROC_MEM for legacy compatibility via /proc/.../mem and not allowing > that to access shadow stacks. This does seem like it may not be very > useful, though. I *really* don't like the /mem use of FOLL_FORCE, though. I think the rationale has been "using PTRACE_POKE is too slow". Again, I can live with it, I was just hoping we could avoid expanding that questionable behavior, especially since it's a bypass of WRSS. -- Kees Cook