From: Marian Marinov <mm-108MBtLGafw@public.gmane.org>
To: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
LXC development mailing-list
<lxc-devel-cunTk1MwBs9qMoObBWhMNEqPaTDuhLve2LY78lusg7I@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: ioctl CAP_LINUX_IMMUTABLE is checked in the wrong namespace
Date: Tue, 29 Apr 2014 16:49:14 +0300 [thread overview]
Message-ID: <535FADDA.2070803@1h.com> (raw)
Hello,
when using user namespaces I found a bug in the capability checks done by ioctl.
If someone tries to use chattr +i while in a different user namespace it will get the following:
ioctl(3, EXT2_IOC_SETFLAGS, 0x7fffa4fedacc) = -1 EPERM (Operation not permitted)
I'm proposing a fix to this, by replacing the capable(CAP_LINUX_IMMUTABLE) check with
ns_capable(current_cred()->user_ns, CAP_LINUX_IMMUTABLE).
If you agree I can send patches for all filesystems.
I'm proposing the following patch:
---
fs/ext4/ioctl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
index d011b69..25683d0 100644
--- a/fs/ext4/ioctl.c
+++ b/fs/ext4/ioctl.c
@@ -265,7 +265,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
* This test looks nicer. Thanks to Pauline Middelink
*/
if ((flags ^ oldflags) & (EXT4_APPEND_FL | EXT4_IMMUTABLE_FL)) {
- if (!capable(CAP_LINUX_IMMUTABLE))
+ if (!ns_capable(current_cred()->user_ns, CAP_LINUX_IMMUTABLE))
goto flags_out;
}
--
1.8.4
--
Marian Marinov
Founder & CEO of 1H Ltd.
Jabber/GTalk: hackman-/eSpBmjxGS4dnm+yROfE0A@public.gmane.org
ICQ: 7556201
Mobile: +359 886 660 270
WARNING: multiple messages have this Message-ID (diff)
From: Marian Marinov <mm@1h.com>
To: containers@lists.linux-foundation.org,
LXC development mailing-list
<lxc-devel@lists.linuxcontainers.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: ioctl CAP_LINUX_IMMUTABLE is checked in the wrong namespace
Date: Tue, 29 Apr 2014 16:49:14 +0300 [thread overview]
Message-ID: <535FADDA.2070803@1h.com> (raw)
Hello,
when using user namespaces I found a bug in the capability checks done by ioctl.
If someone tries to use chattr +i while in a different user namespace it will get the following:
ioctl(3, EXT2_IOC_SETFLAGS, 0x7fffa4fedacc) = -1 EPERM (Operation not permitted)
I'm proposing a fix to this, by replacing the capable(CAP_LINUX_IMMUTABLE) check with
ns_capable(current_cred()->user_ns, CAP_LINUX_IMMUTABLE).
If you agree I can send patches for all filesystems.
I'm proposing the following patch:
---
fs/ext4/ioctl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
index d011b69..25683d0 100644
--- a/fs/ext4/ioctl.c
+++ b/fs/ext4/ioctl.c
@@ -265,7 +265,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
* This test looks nicer. Thanks to Pauline Middelink
*/
if ((flags ^ oldflags) & (EXT4_APPEND_FL | EXT4_IMMUTABLE_FL)) {
- if (!capable(CAP_LINUX_IMMUTABLE))
+ if (!ns_capable(current_cred()->user_ns, CAP_LINUX_IMMUTABLE))
goto flags_out;
}
--
1.8.4
--
Marian Marinov
Founder & CEO of 1H Ltd.
Jabber/GTalk: hackman@jabber.org
ICQ: 7556201
Mobile: +359 886 660 270
next reply other threads:[~2014-04-29 13:49 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-29 13:49 Marian Marinov [this message]
2014-04-29 13:49 ` ioctl CAP_LINUX_IMMUTABLE is checked in the wrong namespace Marian Marinov
2014-04-29 18:35 ` Theodore Ts'o
[not found] ` <20140429183534.GB19325-AKGzg7BKzIDYtjvyW6yDsg@public.gmane.org>
2014-04-29 18:52 ` Serge Hallyn
2014-04-29 18:52 ` Serge Hallyn
2014-04-29 21:49 ` Marian Marinov
2014-04-29 21:49 ` Marian Marinov
[not found] ` <53601E5B.5050004-108MBtLGafw@public.gmane.org>
2014-04-29 22:02 ` Serge Hallyn
2014-04-29 22:02 ` Serge Hallyn
2014-04-29 22:24 ` Marian Marinov
2014-04-29 22:24 ` Marian Marinov
[not found] ` <536026B3.1020905-108MBtLGafw@public.gmane.org>
2014-04-29 22:29 ` Serge Hallyn
2014-04-29 22:29 ` Serge Hallyn
2014-04-29 22:45 ` Andy Lutomirski
2014-04-29 22:45 ` Andy Lutomirski
[not found] ` <53602B84.1020304-3s7WtUTddSA@public.gmane.org>
2014-04-29 23:06 ` Theodore Ts'o
2014-04-29 23:06 ` Theodore Ts'o
[not found] ` <20140429230624.GA28966-AKGzg7BKzIDYtjvyW6yDsg@public.gmane.org>
2014-04-29 23:07 ` Andy Lutomirski
2014-04-29 23:07 ` Andy Lutomirski
2014-04-29 23:20 ` Marian Marinov
2014-04-29 23:20 ` Marian Marinov
[not found] ` <536033A9.5070504-108MBtLGafw@public.gmane.org>
2014-04-29 23:22 ` Andy Lutomirski
2014-04-29 23:22 ` Andy Lutomirski
[not found] ` <CALCETrVJY6SWjdbqSSCeOo9oid22TnL83v9oDVg06XLZfPkLCw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-29 23:47 ` Stéphane Graber
2014-04-29 23:47 ` Stéphane Graber
2014-04-29 23:51 ` Andy Lutomirski
2014-04-29 23:51 ` Andy Lutomirski
[not found] ` <CALCETrXK6N8CLjPtnHVXB-BM_bxNU6e1xYGd=_UKcjKMrR3j0g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-30 0:01 ` Stéphane Graber
2014-04-30 0:01 ` Stéphane Graber
2014-04-30 0:10 ` Marian Marinov
2014-04-30 0:10 ` Marian Marinov
[not found] ` <53603F8F.6070304-108MBtLGafw@public.gmane.org>
2014-04-30 0:12 ` Andy Lutomirski
2014-04-30 0:12 ` Andy Lutomirski
2014-04-30 0:11 ` Andy Lutomirski
2014-04-30 0:11 ` Andy Lutomirski
[not found] ` <CALCETrWz2i1xE_t982yA8GG4a-rD4AnU_43YA8cNdC9NpSD4Sg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-30 0:21 ` Serge Hallyn
2014-04-30 0:21 ` Serge Hallyn
2014-04-30 0:23 ` Andy Lutomirski
2014-04-30 0:23 ` Andy Lutomirski
[not found] ` <CALCETrVh0hCtiK=9fmEYfUWuz4C1dPq22kvyd=OWFMH5pXGaZw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-30 0:44 ` Serge Hallyn
2014-04-30 0:44 ` Serge Hallyn
2014-04-30 1:03 ` Andy Lutomirski
2014-04-30 1:03 ` Andy Lutomirski
2014-04-30 0:16 ` Serge Hallyn
2014-04-30 0:16 ` Serge Hallyn
2014-04-30 0:32 ` Theodore Ts'o
2014-04-30 0:32 ` Theodore Ts'o
[not found] ` <20140430003236.GA6472-AKGzg7BKzIDYtjvyW6yDsg@public.gmane.org>
2014-04-30 0:33 ` Andy Lutomirski
2014-04-30 0:33 ` Andy Lutomirski
2014-04-30 0:40 ` Serge Hallyn
2014-04-30 0:40 ` Serge Hallyn
2014-04-30 7:48 ` Eric W. Biederman
2014-04-30 7:48 ` Eric W. Biederman
[not found] ` <87ha5bntqm.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2014-04-30 13:33 ` Serge Hallyn
2014-04-30 13:33 ` Serge Hallyn
[not found] ` <535FADDA.2070803-108MBtLGafw@public.gmane.org>
2014-04-29 18:35 ` Theodore Ts'o
2014-04-29 18:37 ` Andy Lutomirski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=535FADDA.2070803@1h.com \
--to=mm-108mbtlgafw@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lxc-devel-cunTk1MwBs9qMoObBWhMNEqPaTDuhLve2LY78lusg7I@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.