From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751394AbdE3KfU (ORCPT ); Tue, 30 May 2017 06:35:20 -0400 Received: from namei.org ([65.99.196.166]:52996 "EHLO namei.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751070AbdE3KfQ (ORCPT ); Tue, 30 May 2017 06:35:16 -0400 Date: Tue, 30 May 2017 20:34:30 +1000 (AEST) From: James Morris To: Kees Cook cc: Christoph Hellwig , "kernel-hardening@lists.openwall.com" , Tetsuo Handa , James Morris , Laura Abbott , "x86@kernel.org" , LKML , linux-security-module Subject: Re: [PATCH v2 05/20] randstruct: Whitelist struct security_hook_heads cast In-Reply-To: Message-ID: References: <1495829844-69341-1-git-send-email-keescook@chromium.org> <1495829844-69341-6-git-send-email-keescook@chromium.org> <20170527084135.GA26844@infradead.org> User-Agent: Alpine 2.20 (LRH 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 27 May 2017, Kees Cook wrote: > On Sat, May 27, 2017 at 1:41 AM, Christoph Hellwig wrote: > > On Fri, May 26, 2017 at 01:17:09PM -0700, Kees Cook wrote: > >> The LSM initialization routines walk security_hook_heads as an array > >> of struct list_head instead of via names to avoid a ton of needless > >> source. Whitelist this to avoid the false positive warning from the > >> plugin: > > > > I think this crap just needs to be fixed properly. If not it almost > > defeats the protections as the "security" ops are just about everywhere. > > There's nothing unsafe about 3dfc9b02864b19f4dab376f14479ee4ad1de6c9e, > it just avoids tons of needless code. Removing needless code is a security feature, ideally. > Tetsuo has some other ideas for > cleaning it up further, but I don't like it because it removes > compile-time verification of function types. There have been a lot of > trade-offs in getting this working correctly, so I don't have any > problem with how it looks currently. It's just a collision of > assumptions between randstruct (omg, you're accessing a randomized > struct with a different struct!) and the security head list (all > entries are lists, and we're just initializing them). Fix randstruct perhaps, rather than modifying kernel code to shut it up. -- James Morris