Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932104Ab2HGXFf (ORCPT ); Tue, 7 Aug 2012 19:05:35 -0400 Received: from e32.co.us.ibm.com ([32.97.110.150]:42302 "EHLO e32.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030676Ab2HGWkE (ORCPT ); Tue, 7 Aug 2012 18:40:04 -0400 Message-ID: <502198B4.8040503@linaro.org> Date: Tue, 07 Aug 2012 15:37:40 -0700 From: John Stultz User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120714 Thunderbird/14.0 MIME-Version: 1.0 To: "Serge E. Hallyn" CC: Paul Moore , lkml , James Morris , selinux@tycho.nsa.gov Subject: Re: NULL pointer dereference in selinux_ip_postroute_compat References: <50215A7E.8000701@linaro.org> <50218F7E.1060004@linaro.org> <20120807221731.GA25441@mail.hallyn.com> In-Reply-To: <20120807221731.GA25441@mail.hallyn.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Content-Scanned: Fidelis XPS MAILER x-cbid: 12080722-2356-0000-0000-0000011317B0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3214 Lines: 79 On 08/07/2012 03:17 PM, Serge E. Hallyn wrote: > Quoting Paul Moore (paul@paul-moore.com): >> On Tue, Aug 7, 2012 at 5:58 PM, John Stultz wrote: >>> On 08/07/2012 02:50 PM, Paul Moore wrote: >>>> On Tue, Aug 7, 2012 at 2:12 PM, John Stultz >>>> wrote: >>>>> Hi, >>>>> With my kvm environment using 3.6-rc1+, I'm seeing NULL pointer >>>>> dereferences in selinux_ip_postroute_compat(). It looks like the sksec >>>>> value >>>>> is null and we die in the following line: >>>>> >>>>> if (selinux_xfrm_postroute_last(sksec->sid, skb, &ad, proto)) >>>>> >>>>> This triggers every time I shutdown the machine, but has also triggered >>>>> randomly after a few hours. >>>>> >>>>> This is on an ubuntu 12.04 image, not using selinux. >>>> NOTE: Adding the SELinux list to the CC line >>> Thanks! >>> >>>> Hi, >>>> >>>> I'm trying to understand this and I was hoping you could you clarify a >>>> few things for me: >>>> >>>> * Is the panic in the Ubuntu 12.04 guest, or the host? If the host, >>>> could you share what distribution you are using? >>> Sorry, its a 12.04 guest. I think the host is Ubuntu 12.04 as well. >>> >>> >>>> * When you say you are not using SELinux, could you be more specific? >>>> It seems odd that you are not using SELinux but the panic is happening >>>> in a SELinux hook. >>> I just mean that, being Ubuntu, the system (userland) isn't configured to >>> use selinux. SELinux is just enabled in the kernel config. >> Thanks for the quick response, I'll setup an Ubuntu guest and see if I >> can reproduce this ... something is odd. Anything non-standard about >> your guest install or anything else you think might be helpful? > The problem seems to be that selinux_nf_ip_init() was called, which > registers the selinux_ipv4_ops (and ipv6). Those should not get registered > if selinux ends up not being loaded (as in, if apparmor is loaded first), > since as you've found here the selinux lsm hooks won't be called to set > call selinux_sk_alloc_security(). This sounds about right: root@testvm:~# dmesg | grep SELinux [ 0.004578] SELinux: Initializing. [ 0.005704] SELinux: Starting in permissive mode [ 2.235034] SELinux: Registering netfilter hooks > I assume what's happening is that CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE was > set to 1, but selinux ended up being set to disabled after the > __initcall(selinux_nf_ip_init) ran? Weird. This looks right as well: # zcat config.gz | grep SELINUX CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set CONFIG_DEFAULT_SECURITY_SELINUX=y Since the problem isn't completely obvious, I'm starting a bisection to narrow this down some more. thanks -john -- 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/