User: Password:
Subscribe / Log in / New account

Re: [PATCH v3] fs: allow protected cross-uid sticky symlinks

From:  Al Viro <>
To:  Kees Cook <>
Subject:  Re: [PATCH v3] fs: allow protected cross-uid sticky symlinks
Date:  Tue, 1 Jun 2010 20:01:02 +0100
Cc:  Eric Paris <>, Christoph Hellwig <>, James Morris <>,,,,, Randy Dunlap <>, Andrew Morton <>, Jiri Kosina <>, Dave Young <>, Martin Schwidefsky <>, David Howells <>, Ingo Molnar <>, Peter Zijlstra <>, "Eric W. Biederman" <>, Tim Gardner <>, "Serge E. Hallyn" <>
Archive-link:  Article, Thread

On Tue, Jun 01, 2010 at 11:52:48AM -0700, Kees Cook wrote:
> A long-standing class of security issues is the symlink-based
> time-of-check-time-of-use race, most commonly seen in world-writable
> directories like /tmp. The common method of exploitation of this flaw
> is to cross privilege boundaries when following a given symlink (i.e. a
> root process follows a symlink belonging to another user).  For a likely
> incomplete list of hundreds of examples across the years, please see:
> The solution is to permit symlinks to only be followed when outside a sticky
> world-writable directory, or when the uid of the symlink and follower match,
> or when the directory owner matches the symlink's owner.
> Some pointers to the history of earlier discussion that I could find:

I don't buy it.  If we are concerned about the symlinks in the middle of
pathname, your checks are useless (mkdir /tmp/a, ln -s whatever /tmp/a/b,
have victim open /tmp/a/b/something).  If we are not, then your checks are
in the wrong place.

"The more we prohibit, the safer we are" is best left to the likes of TSA;
if we are really interested in security and not in security theatre or
BDSM fetishism, let's make sure that heuristics we use make sense.
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to
More majordomo info at

(Log in to post comments)

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds