lkml.org 
[lkml]   [2018]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7 1/2] overlayfs: check CAP_DAC_READ_SEARCH before issuing exportfs_decode_fh
    Date
    Assumption never checked, should fail if the mounter creds are not
    sufficient.

    Signed-off-by: Mark Salyzyn <salyzyn@android.com>
    Cc: Miklos Szeredi <miklos@szeredi.hu>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Cc: Amir Goldstein <amir73il@gmail.com>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Stephen Smalley <sds@tycho.nsa.gov>
    Cc: linux-unionfs@vger.kernel.org
    Cc: linux-doc@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: kernel-team@android.com
    ---
    v7:
    - This time for realz

    v6:
    - rebase

    v5:
    - dependency of "overlayfs: override_creds=off option bypass creator_cred"

    fs/overlayfs/namei.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c
    index efd372312ef1..3ac9dc8f6cc0 100644
    --- a/fs/overlayfs/namei.c
    +++ b/fs/overlayfs/namei.c
    @@ -163,6 +163,9 @@ struct dentry *ovl_decode_real_fh(struct ovl_fh *fh, struct vfsmount *mnt,
    if (!uuid_equal(&fh->uuid, &mnt->mnt_sb->s_uuid))
    return NULL;

    + if (!capable(CAP_DAC_READ_SEARCH))
    + return ERR_PTR(-EPERM);
    +
    bytes = (fh->len - offsetof(struct ovl_fh, fid));
    real = exportfs_decode_fh(mnt, (struct fid *)fh->fid,
    bytes >> 2, (int)fh->type,
    --
    2.19.1.930.g4563a0d9d0-goog
    \
     
     \ /
      Last update: 2018-11-05 22:21    [W:5.740 / U:0.412 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site