Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751839AbZL3DuS (ORCPT ); Tue, 29 Dec 2009 22:50:18 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751602AbZL3DuP (ORCPT ); Tue, 29 Dec 2009 22:50:15 -0500 Received: from e38.co.us.ibm.com ([32.97.110.159]:47724 "EHLO e38.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751556AbZL3DuN (ORCPT ); Tue, 29 Dec 2009 22:50:13 -0500 Date: Tue, 29 Dec 2009 21:50:08 -0600 From: "Serge E. Hallyn" To: "Eric W. Biederman" Cc: Alan Cox , Benny Amorsen , Bryan Donlan , Michael Stone , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, linux-security-module@vger.kernel.org, Andi Kleen , David Lang , Oliver Hartkopp , Herbert Xu , Valdis Kletnieks , Evgeniy Polyakov , "C. Scott Ananian" , James Morris , Bernie Innocenti , Mark Seaborn , Randy Dunlap , =?iso-8859-1?Q?Am=E9rico?= Wang , Tetsuo Handa , Samir Bellabes , Casey Schaufler , Pavel Machek , Al Viro Subject: Re: RFC: disablenetwork facility. (v4) Message-ID: <20091230035008.GA6819@us.ibm.com> References: <20091229050114.GC14362@heat> <20091229151146.GA32153@us.ibm.com> <3e8340490912290805s103fb789y13acea4a84669b20@mail.gmail.com> <20091229211139.0732a0c1@lxorguk.ukuu.org.uk> <20091229223631.GB22578@us.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2691 Lines: 65 Quoting Eric W. Biederman (ebiederm@xmission.com): > "Serge E. Hallyn" writes: > > > Quoting Eric W. Biederman (ebiederm@xmission.com): > >> Alan Cox writes: > >> > >> >> > Execute != read. The executable file may contain secrets which must not > >> >> > be available to the user running the setuid program. If you fail the > >> >> > setuid, the user will be able to ptrace() and then the secret is > >> >> > revealed. > >> >> > > >> >> > It's amazing how many security holes appear from what seems like a very > >> >> > simple request. > >> >> > >> >> Do we have a security hole in nosuid mount option? > >> >> Can someone write a patch to fix it? > >> > > >> > If a setuid app can read a key when its erroneously not set setuid then > >> > the user can read it too. > >> > > >> > Anything you can do with ptrace you can do yourself ! > >> > >> Now that I think about it this is really something completely separate > >> from setuid. This is about being able to read the text segment with > >> ptrace when you on have execute permissions on the file. > >> > >> I just skimmed through fs/exec.c and we set the undumpable process > >> flag in that case so ptrace should not work in that case. > > > > And in fact you can't do a new ptrace_attach, but if you're already > > tracing the task when it execs the unreadable-but-executable file, > > then the ptrace can continue. > > > > Just looking at the code, it appears 2.2 was the same way (though I > > could be missing where it used to enforce that). > > > > So, is that intended? What exactly would we do about it if not? > > Just refuse exec of a unreadable-but-executable file if we're > > being traced? > > In common cap we drop the new capabilities if we are being ptraced. > Look for brm->unsafe. Yes - that isn't the issue. The issue is with a file to which we have execute permission but not read. If user hallyn has two terminals open, and terminal one does ./foo then terminal two cannot do strace -f -p `pidof foo`. But user hallyn can do strace -f -p ./foo and succeed. So we refuse ptrace_attach to an existing process with dumpable turned off, but a pre-existing ptrace attach isn't affected by executing a file which causes dumpable to be unset. It goes back to finding a way to figure out what is inside the file when the installer obviously thought we shouldn't be able to read the file. Do we care? -serge -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/