From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu-cheng Yu Subject: Re: [RFC PATCH v3 12/24] x86/mm: Modify ptep_set_wrprotect and pmdp_set_wrprotect for _PAGE_DIRTY_SW Date: Thu, 30 Aug 2018 10:54:26 -0700 Message-ID: <1535651666.27823.6.camel@intel.com> References: <20180830143904.3168-1-yu-cheng.yu@intel.com> <20180830143904.3168-13-yu-cheng.yu@intel.com> <079a55f2-4654-4adf-a6ef-6e480b594a2f@linux.intel.com> <1535649960.26689.15.camel@intel.com> <33d45a12-513c-eba2-a2de-3d6b630e928e@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <33d45a12-513c-eba2-a2de-3d6b630e928e@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org To: Dave Hansen , Jann Horn Cc: the arch/x86 maintainers , "H . Peter Anvin" , Thomas Gleixner , Ingo Molnar , kernel list , linux-doc@vger.kernel.org, Linux-MM , linux-arch , Linux API , Arnd Bergmann , Andy Lutomirski , Balbir Singh , Cyrill Gorcunov , Florian Weimer , hjl.tools@gmail.com, Jonathan Corbet , keescook@chromiun.org, Mike Kravetz , Nadav Amit , Oleg Nesterov , Pavel Machek , Peter Zijlstra List-Id: linux-arch.vger.kernel.org On Thu, 2018-08-30 at 10:33 -0700, Dave Hansen wrote: > On 08/30/2018 10:26 AM, Yu-cheng Yu wrote: > > > > We don't have the guard page now, but there is a shadow stack > > token > > there, which cannot be used as a return address. > The overall concern is that we could overflow into a page that we > did > not intend.  Either another actual shadow stack or something that a > page > that the attacker constructed, like the transient scenario Jann > described. > A task could go beyond the bottom of its shadow stack by doing either 'ret' or 'incssp'.  If it is the 'ret' case, the token prevents it.  If it is the 'incssp' case, a guard page cannot prevent it entirely, right? Yu-cheng From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com ([134.134.136.31]:45764 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726959AbeH3WB7 (ORCPT ); Thu, 30 Aug 2018 18:01:59 -0400 Message-ID: <1535651666.27823.6.camel@intel.com> Subject: Re: [RFC PATCH v3 12/24] x86/mm: Modify ptep_set_wrprotect and pmdp_set_wrprotect for _PAGE_DIRTY_SW From: Yu-cheng Yu Date: Thu, 30 Aug 2018 10:54:26 -0700 In-Reply-To: <33d45a12-513c-eba2-a2de-3d6b630e928e@linux.intel.com> References: <20180830143904.3168-1-yu-cheng.yu@intel.com> <20180830143904.3168-13-yu-cheng.yu@intel.com> <079a55f2-4654-4adf-a6ef-6e480b594a2f@linux.intel.com> <1535649960.26689.15.camel@intel.com> <33d45a12-513c-eba2-a2de-3d6b630e928e@linux.intel.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-arch-owner@vger.kernel.org List-ID: To: Dave Hansen , Jann Horn Cc: the arch/x86 maintainers , "H . Peter Anvin" , Thomas Gleixner , Ingo Molnar , kernel list , linux-doc@vger.kernel.org, Linux-MM , linux-arch , Linux API , Arnd Bergmann , Andy Lutomirski , Balbir Singh , Cyrill Gorcunov , Florian Weimer , hjl.tools@gmail.com, Jonathan Corbet , keescook@chromiun.org, Mike Kravetz , Nadav Amit , Oleg Nesterov , Pavel Machek , Peter Zijlstra , ravi.v.shankar@intel.com, vedvyas.shanbhogue@intel.com Message-ID: <20180830175426.Faqw_-p-mWmTD41N_X5M7NkaokPhl6SulevyO7L8kV4@z> On Thu, 2018-08-30 at 10:33 -0700, Dave Hansen wrote: > On 08/30/2018 10:26 AM, Yu-cheng Yu wrote: > > > > We don't have the guard page now, but there is a shadow stack > > token > > there, which cannot be used as a return address. > The overall concern is that we could overflow into a page that we > did > not intend.  Either another actual shadow stack or something that a > page > that the attacker constructed, like the transient scenario Jann > described. > A task could go beyond the bottom of its shadow stack by doing either 'ret' or 'incssp'.  If it is the 'ret' case, the token prevents it.  If it is the 'incssp' case, a guard page cannot prevent it entirely, right? Yu-cheng