|
Message-ID: <CAGXu5j+AUmNFLYmm-097JD-LgxKaYXxTmpnCdsdsqA+jLztXZQ@mail.gmail.com> Date: Sat, 11 Aug 2012 23:34:20 -0700 From: Kees Cook <keescook@...omium.org> To: Vasily Kulikov <segoon@...nwall.com> Cc: kernel-hardening@...ts.openwall.com, Al Viro <viro@...iv.linux.org.uk>, Andrew Morton <akpm@...ux-foundation.org>, linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org, Eric Paris <eparis@...hat.com>, Matthew Wilcox <matthew@....cx>, Doug Ledford <dledford@...hat.com>, Joe Korty <joe.korty@...r.com>, "Eric W. Biederman" <ebiederm@...ssion.com>, Ingo Molnar <mingo@...e.hu>, David Howells <dhowells@...hat.com>, James Morris <james.l.morris@...cle.com>, linux-doc@...r.kernel.org, Dan Rosenberg <drosenberg@...curity.com> Subject: Re: [PATCH 1/2] fs: add link restrictions On Wed, Aug 8, 2012 at 5:19 AM, Vasily Kulikov <segoon@...nwall.com> wrote: > 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? Excellent idea. It doesn't look like there is anything "simple" to do this already. It'd be close to get_file_caps() but without the bprm. Maybe just get_vfs_caps_from_disk() and a walk of the caps? What would you recommend? > 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). Yeah. Perhaps implementing the needed check above with a new security check and have commoncaps do the vfs fetch with LSMs able to override? -Kees -- Kees Cook Chrome OS Security
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.