Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752844AbbHUVGh (ORCPT ); Fri, 21 Aug 2015 17:06:37 -0400 Received: from terminus.zytor.com ([198.137.202.10]:56077 "EHLO mail.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752285AbbHUVGg (ORCPT ); Fri, 21 Aug 2015 17:06:36 -0400 Message-ID: <55D792C8.6090006@zytor.com> Date: Fri, 21 Aug 2015 14:06:16 -0700 From: "H. Peter Anvin" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Borislav Petkov CC: yalin wang , Thomas Gleixner , mingo@redhat.com, x86@kernel.org, open list , Will Deacon Subject: Re: [x86] copy_from{to}_user question References: <7FD389F5-C677-4439-8082-EB0CAE2814F6@gmail.com> <20150812100738.GA14020@nazgul.tnic> <9232AF8E-87A3-40B2-852A-D07889F9E1B4@gmail.com> <20150813164302.GA15881@nazgul.tnic> <6ABF6137-251E-47EF-B824-AC77C9C9AB24@gmail.com> <20150817041634.GA9387@nazgul.tnic> <55D61AF3.4090004@zytor.com> <20150821043552.GA29712@nazgul.tnic> In-Reply-To: <20150821043552.GA29712@nazgul.tnic> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1221 Lines: 27 On 08/20/2015 09:35 PM, Borislav Petkov wrote: > On Thu, Aug 20, 2015 at 11:22:43AM -0700, H. Peter Anvin wrote: >> There is a valid reason to do this, which is that currently >> copy_{to,from}_user() effectively bypass SMAP as they don't verify that >> the kernel pointer is actually a kernel pointer. > > Well, we do STAC before we copy but SMAP is checking for supervisor > access to *user* data. But you say "kernel pointers" which is supervisor > data. What am I missing? > What I'm saying is that we do do STAC, which *disables* SMAP. We have to do that because one pointer is known to be a user space pointer. However, we currently don't verify that the *other* pointer is kernel space, which it is supposed to be (if not, we should be using copy_in_user). We have to do this manually since we have to STAC which means SMAP doesn't do anything at all. I believe it would be a good idea to add such checks (and they would even benefit non-SMAP hardware.) -hpa -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/