From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932542Ab2AEOkM (ORCPT ); Thu, 5 Jan 2012 09:40:12 -0500 Received: from mx.scalarmail.ca ([98.158.95.75]:55058 "EHLO ironport-01.sms.scalar.ca" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932441Ab2AEOkF (ORCPT ); Thu, 5 Jan 2012 09:40:05 -0500 X-Greylist: delayed 589 seconds by postgrey-1.27 at vger.kernel.org; Thu, 05 Jan 2012 09:40:05 EST Date: Thu, 5 Jan 2012 09:30:08 -0500 From: Nick Bowler To: Kees Cook Cc: linux-kernel@vger.kernel.org, Alexander Viro , Ingo Molnar , Andrew Morton , Rik van Riel , Federica Teodori , Lucian Adrian Grijincu , Peter Zijlstra , Eric Paris , Randy Dunlap , Dan Rosenberg , linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, kernel-hardening@lists.openwall.com Subject: Re: [PATCH v2012.1] fs: symlink restrictions on sticky directories Message-ID: <20120105143008.GA31728@elliptictech.com> References: <20120104201800.GA2587@www.outflux.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20120104201800.GA2587@www.outflux.net> Organization: Elliptic Technologies Inc. User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2012-01-04 12:18 -0800, 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: > http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=/tmp > > 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. [...] > diff --git a/fs/Kconfig b/fs/Kconfig > index 5f4c45d..26ede24 100644 > --- a/fs/Kconfig > +++ b/fs/Kconfig > @@ -278,3 +278,19 @@ source "fs/nls/Kconfig" > source "fs/dlm/Kconfig" > > endmenu > + > +config PROTECTED_STICKY_SYMLINKS > + bool "Protect symlink following in sticky world-writable directories" > + default y [...] Why do we need a config option for this? What's wrong with just using the sysctl? Why have you made this option "default y", when enabling it clearly makes user-visible changes to kernel behaviour? Cheers, -- Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)