lkml.org 
[lkml]   [2012]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [kernel-hardening] [PATCH 1/2] fs: add link restrictions
    Hi Kees,

    On Wed, Jul 25, 2012 at 17:29 -0700, Kees Cook wrote:
    > +/**
    > + * safe_hardlink_source - Check for safe hardlink conditions
    > + * @inode: the source inode to hardlink from
    > + *
    > + * Return false if at least one of the following conditions:
    > + * - inode is not a regular file
    > + * - inode is setuid
    > + * - inode is setgid and group-exec
    > + * - access failure for read and write
    > + *
    > + * Otherwise returns true.
    > + */
    > +static bool safe_hardlink_source(struct inode *inode)
    > +{
    > + umode_t mode = inode->i_mode;
    > +
    > + /* Special files should not get pinned to the filesystem. */
    > + if (!S_ISREG(mode))
    > + return false;
    > +
    > + /* Setuid files should not get pinned to the filesystem. */
    > + if (mode & S_ISUID)
    > + return false;

    We don't want to make hardlinks of SUID files, but we still allow to create
    hardlinks to SUID'ish cap'ed files. Probably check whether the inode is
    setcap'ed?

    Probably we can enhance this further and allow LSMs to define whether this
    particular file is special in LSM's point of view (IOW, it can be able to move
    a process to another security domain which is served by LSM).

    > +
    > + /* Executable setgid files should not get pinned to the filesystem. */
    > + if ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))
    > + return false;
    > +
    > + /* Hardlinking to unreadable or unwritable sources is dangerous. */
    > + if (inode_permission(inode, MAY_READ | MAY_WRITE))
    > + return false;
    > +
    > + return true;
    > +}

    Thanks,

    --
    Vasily


    \
     
     \ /
      Last update: 2012-08-08 15:02    [W:2.584 / U:0.108 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site