lkml.org 
[lkml]   [2012]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: NULL pointer dereference in selinux_ip_postroute_compat
    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 <john.stultz@linaro.org> wrote:
    >>> On 08/07/2012 02:50 PM, Paul Moore wrote:
    >>>> On Tue, Aug 7, 2012 at 2:12 PM, John Stultz <john.stultz@linaro.org>
    >>>> 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



    \
     
     \ /
      Last update: 2012-08-08 01:41    [W:2.170 / U:0.360 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site