Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1174925imm; Wed, 15 Aug 2018 12:45:33 -0700 (PDT) X-Google-Smtp-Source: AA+uWPyIXagmtPUb1HToPRc39OCfIQnmTcDQhSkW7EVkWDyM3ExV0HgsTuyh6Z7dtcsWKQdigWTQ X-Received: by 2002:a63:1d5e:: with SMTP id d30-v6mr26788901pgm.12.1534362333757; Wed, 15 Aug 2018 12:45:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534362333; cv=none; d=google.com; s=arc-20160816; b=bWuStmufLa9HnAKVuDkzZFN3vIl95y90ib8CQl+EOfwC2rfTF564Nw1rA6hv8QITRg 3od5Bokq6a5NporD4yDQMaLdG/waC5pkGNjhW1oip5LPj2bwKMpsRCvjLpZrlsNUCtCY ZuxBMGWUzkafPJcDVMMpTAw2hIv6eMaQGFILybaE8eaHhtx4pDAWozMPvZradoiU8x5z 5chEVZHG4++bR2ecCGm5WYuerKWFBrK/NxbAo+F1JGueRXD1smpZs5FbwWn9mpGZVOHS jHwq8RHrjZ5Q5IGOz6DtJo91yUqYg+FjJ3KEMZUpGDjReVF6GUZYhxfISYM5Gukrb+5j CuYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:from:references:cc:to:subject:reply-to :arc-authentication-results; bh=496DUJMYnElMDuXfOr9BB4olKgaHMfyaJ9D/7+KAA54=; b=td5JwZ34uGRZgoGC45nI9qT2ibv2x1F4ygMZoi818HXqlGE7IwE5OW3uFwJf3HUkcY 94ULxWMCBSyRYCwGftLRbQJMSxKbqF2UJ11PnXg2CMKQAAeMbCdWTzML33p9FmNRL/Ox Bke1ajag+2XGlpoAhfP4S/uFrFjHycaX2ugLBOiKloKLa8mKqo+hdr+rvZH1Og19/V1E tiWHOzOUQV/L+uWDtMjDzCAAryDGrqmh8S7jJiBnxqScZMXtUq4MSgbwHWwgMYA1Ghk2 TldvAgqW0yz3OoHp1e9PuxgwAwhW/zi4PN1ALz/L5lhTVnsAc1UAWI6jHOvX0Mer87aS R8gw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i23-v6si22817611pgb.246.2018.08.15.12.45.18; Wed, 15 Aug 2018 12:45:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728016AbeHOWhE (ORCPT + 99 others); Wed, 15 Aug 2018 18:37:04 -0400 Received: from mail-lj1-f194.google.com ([209.85.208.194]:46586 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727619AbeHOWhE (ORCPT ); Wed, 15 Aug 2018 18:37:04 -0400 Received: by mail-lj1-f194.google.com with SMTP id 203-v6so1815273ljj.13 for ; Wed, 15 Aug 2018 12:43:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:subject:to:cc:references:from:openpgp :autocrypt:message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=496DUJMYnElMDuXfOr9BB4olKgaHMfyaJ9D/7+KAA54=; b=KIU1A2aWZyPE4tikruHnfVR5fcRwS04f/xj15RxbLa2ErR+iaKVo4mpinxzvGp3PK8 FyG0eCbc4BCd4hCtWxzYxw3q67aUKcguOR4uJDcWjrlCk19RtrSyghJi3k2PqQe9hBRc bYxSrwTeblsr3z4nkJqZyRC/HoiJqfr1aToU647JqTYV9d4adITBYgcyxPD4Kz700qoH tbSRuHnFqoUdNt7tC8eBaHTrkYFM8Kwz8TNLBY4TM/nld888NM7xM0ZPs5WmLyshdsPk J6Qa9DArsjVtWYNuuyWQe/AuNzNQkou/Gp6tF5O8KChv1w7szSWtDBuya5SKBytBM1dk sY8A== X-Gm-Message-State: AOUpUlHDB3KVjXxDx6kgwUOjVd5oYLdElwni+uoLmfDhTPbnjR0k4cVT F5j7TFuLOGy9516SwAj70sw= X-Received: by 2002:a2e:94d5:: with SMTP id r21-v6mr2675096ljh.126.1534362210672; Wed, 15 Aug 2018 12:43:30 -0700 (PDT) Received: from [192.168.42.27] ([213.87.156.121]) by smtp.gmail.com with ESMTPSA id f28-v6sm4153932lje.61.2018.08.15.12.43.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 Aug 2018 12:43:29 -0700 (PDT) Reply-To: alex.popov@linux.com Subject: Re: [GIT PULL] gcc-plugin updates for v4.19-rc1 To: Linus Torvalds , Kees Cook Cc: Linux Kernel Mailing List , Dave Hansen , Ingo Molnar , Masahiro Yamada , Thomas Gleixner , Tycho Andersen , Mark Rutland , Laura Abbott , Will Deacon References: <20180813214328.GA15137@beast> From: Alexander Popov Openpgp: preference=signencrypt Autocrypt: addr=alex.popov@linux.com; prefer-encrypt=mutual; keydata= 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 jXz/74kjFsyRgZA+d6a1pGtOwITEBxtxxg== Message-ID: <2fd303f1-cb5b-c1d9-b046-e8394dc22859@linux.com> Date: Wed, 15 Aug 2018 22:43:12 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Linus, On 15.08.2018 22:04, Linus Torvalds wrote: > On Wed, Aug 15, 2018 at 11:35 AM Kees Cook wrote: >> >> I swear I'm doing my best. Are you speaking of >> stackleak_check_alloca() or stackleak_erase()? These were both >> discussed on the list, and we weren't able to come up with >> alternatives: in both cases we're off the stack, and recovery is >> seemingly impossible. > > Why do you even *test* that thing? Why don't you just allocate stack > and clear it. > > Dammit, the whole f*cking point of this patch-set is to clear the > stack used. It is *not* supposed to do anything else. If the process > runs out of stack, that's caught by the vmalloc'ed stack. > > And if you don't have vmalloc'ed stack, then clearly you don't care. > > I refuse to take this kind of code that does stupid things, and then > *because* it does those initial stupid things it does even more stupid > things to correct for it. Could you please have a look at the commit messages (or at the code)? You are really arguing with wrong things! Let me correct Kees and give you the details. Please don't be angry. Again, this plugin provides two features: kernel stack erasing and blocking Stack Clash (ability to jump over the guard page provided by VMAP_STACK). So: 1. stackleak_erase() erases the stack. It has a BUG_ON() to detect 'task_struct.lowest_stack' corruption. It's not a security violation BUG(), which you hate. We just don't want to erase wrong memory. We have discussed that with Ingo and others. 2. stackleak_check_alloca() detects 'Stack Clash' and it does absolutely similar things with VMAP_STACK and SCHED_STACK_END_CHECK. Having VMAP_STACK + STACKLEAK + THREAD_INFO_IN_TASK together protects us from all known stack depth overflows. Yes, one day we will remove all VLA's from the mainline kernel. But STACKLEAK plugin protects un-upstreamed code as well. I've put so much effort (1.5 years) to polish it and make you, Ingo and others satisfied! Best regards, Alexander