David Drysdale [off-list ref] writes:
Add a new O_BENEATH_ONLY flag for openat(2) which restricts the
provided path, rejecting (with -EACCES) paths that are not beneath
the provided dfd. In particular, reject:
- paths that contain .. components
- paths that begin with /
- symlinks that have paths as above.
How about bind mounts?
-Andi
--
ak@linux.intel.com -- Speaking for myself only
On Mon, Jun 30, 2014 at 1:40 PM, Andi Kleen [off-list ref] wrote:
David Drysdale [off-list ref] writes:
quoted
Add a new O_BENEATH_ONLY flag for openat(2) which restricts the
provided path, rejecting (with -EACCES) paths that are not beneath
the provided dfd. In particular, reject:
- paths that contain .. components
- paths that begin with /
- symlinks that have paths as above.
How about bind mounts?
What's the problematic scenario?
--Andy
On Mon, Jun 30, 2014 at 01:40:40PM -0700, Andi Kleen wrote:
David Drysdale [off-list ref] writes:
quoted
Add a new O_BENEATH_ONLY flag for openat(2) which restricts the
provided path, rejecting (with -EACCES) paths that are not beneath
the provided dfd. In particular, reject:
- paths that contain .. components
- paths that begin with /
- symlinks that have paths as above.
How about bind mounts?
-Andi
--
ak-VuQAYsv1563Yd54FQh9/CA@public.gmane.org -- Speaking for myself only
Bind mounts won't get rejected because they just look like normal
path components. In other words, if dir/subdir is a bind mount to
/root/dir then:
fd = openat(AT_FDCWD, "dir/subdir", O_RDONLY|O_BENEATH_ONLY);
will work fine.
On Tue, Jul 1, 2014 at 1:53 PM, David Drysdale [off-list ref] wrote:
On Mon, Jun 30, 2014 at 01:40:40PM -0700, Andi Kleen wrote:
quoted
David Drysdale [off-list ref] writes:
quoted
Add a new O_BENEATH_ONLY flag for openat(2) which restricts the
provided path, rejecting (with -EACCES) paths that are not beneath
the provided dfd. In particular, reject:
- paths that contain .. components
- paths that begin with /
- symlinks that have paths as above.
How about bind mounts?
-Andi
--
ak@linux.intel.com -- Speaking for myself only
Bind mounts won't get rejected because they just look like normal
path components. In other words, if dir/subdir is a bind mount to
/root/dir then:
fd = openat(AT_FDCWD, "dir/subdir", O_RDONLY|O_BENEATH_ONLY);
will work fine.
Talking about David's efforts at porting Capsicum to Linux, I've
already implemented
support for Capsicum in OpenSSH. It shouldn't be complicated to enable
it on Linux
systems that support it.
I would very like to see capsicum integrated into mainline, as it's a
high quality sandbox
solution, that will benefit a lot of server software that implement
privilege separation.
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
This message is strictly personal and the opinions expressed do not
represent those of my employers, either past or present.