17 May, 2005

1 commit

  • This patch should fix the avc_alloc_node() oom condition that Andrew
    reported when no policy is loaded in SELinux.

    Prior to this patch, when no policy was loaded, the SELinux "security
    server" (policy engine) was only returning allowed decisions for the
    requested permissions for each access check. This caused the cache to
    thrash when trying to use SELinux for real work with no policy loaded
    (typically, the no policy loaded state is only for bootstrapping to the
    point where we can load an initial policy).

    This patch changes the SELinux security server to return the complete
    allowed access vector at once, and then to reset the cache after the
    initial policy load to flush the initial cache state created during
    bootstrapping.

    Signed-off-by: Stephen Smalley
    Signed-off-by: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Smalley
     

01 May, 2005

2 commits

  • This patch provides finer grained permissions for the audit family of
    Netlink sockets under SELinux.

    1. We need a way to differentiate between privileged and unprivileged
    reads of kernel data maintained by the audit subsystem. The AUDIT_GET
    operation is unprivileged: it returns the current status of the audit
    subsystem (e.g. whether it's enabled etc.). The AUDIT_LIST operation
    however returns a list of the current audit ruleset, which is considered
    privileged by the audit folk. To deal with this, a new SELinux
    permission has been implemented and applied to the operation:
    nlmsg_readpriv, which can be allocated to appropriately privileged
    domains. Unprivileged domains would only be allocated nlmsg_read.

    2. There is a requirement for certain domains to generate audit events
    from userspace. These events need to be collected by the kernel,
    collated and transmitted sequentially back to the audit daemon. An
    example is user level login, an auditable event under CAPP, where
    login-related domains generate AUDIT_USER messages via PAM which are
    relayed back to auditd via the kernel. To prevent handing out
    nlmsg_write permissions to such domains, a new permission has been
    added, nlmsg_relay, which is intended for this type of purpose: data is
    passed via the kernel back to userspace but no privileged information is
    written to the kernel.

    Also, AUDIT_LOGIN messages are now valid only for kernel->user messaging,
    so this value has been removed from the SELinux nlmsgtab (which is only
    used to check user->kernel messages).

    Signed-off-by: James Morris
    Signed-off-by: Stephen Smalley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    James Morris
     
  • This patch removes the sclass argument from ipc_has_perm in the SELinux
    module, as it can be obtained from the ipc security structure. The use of
    a separate argument was a legacy of the older precondition function
    handling in SELinux and is obsolete. Please apply.

    Signed-off-by: Stephen Smalley
    Signed-off-by: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Smalley
     

25 Apr, 2005

1 commit

  • The SELinux hooks invoke ipv6_skip_exthdr() with an incorrect
    length final argument. However, the length argument turns out
    to be superfluous.

    I was just reading ipv6_skip_exthdr and it occured to me that we can
    get rid of len altogether. The only place where len is used is to
    check whether the skb has two bytes for ipv6_opt_hdr. This check
    is done by skb_header_pointer/skb_copy_bits anyway.

    Now it might appear that we've made the code slower by deferring
    the check to skb_copy_bits. However, this check should not trigger
    in the common case so this is OK.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     

19 Apr, 2005

1 commit

  • This fixes a deadlock on the dcache lock detected during testing at IBM
    by moving the logging of the current executable information from the
    SELinux avc_audit function to audit_log_exit (via an audit_log_task_info
    helper) for processing upon syscall exit.

    For consistency, the patch also removes the logging of other
    task-related information from avc_audit, deferring handling to
    audit_log_exit instead.

    This allows simplification of the avc_audit code, allows the exe
    information to be obtained more reliably, always includes the comm
    information (useful for scripts), and avoids including bogus task
    information for checks performed from irq or softirq.

    Signed-off-by: Stephen Smalley
    Signed-off-by: James Morris
    Signed-off-by: Linus Torvalds

    Stephen Smalley
     

17 Apr, 2005

3 commits

  • This patch adds SELinux support for the KOBJECT_UEVENT Netlink family, so
    that SELinux can apply finer grained controls to it. For example, security
    policy for hald can be locked down to the KOBJECT_UEVENT Netlink family
    only. Currently, this family simply defaults to the default Netlink socket
    class.

    Note that some new permission definitions are added to sync with changes in
    the core userspace policy package, which auto-generates header files.

    Signed-off-by: James Morris
    Signed-off-by: Stephen Smalley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    James Morris
     
  • This patch fixes a bug in the SELinux Netlink message type detection code,
    where the wrong constant was being used in a case statement. The incorrect
    value is not valid for this class of object so it would not have been
    reached, and fallen through to a default handler for all Netlink messages.

    Signed-off-by: James Morris
    Signed-off-by: Stephen Smalley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    James Morris
     
  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds