Date: Sat, 21 Aug 2004 14:24:01 -0700 From: Tim Kientzle <kientzle@freebsd.org> To: Kris Kennaway <kris@obsecurity.org> Cc: current@freebsd.org Subject: Re: bsdtar's security restrictions (was Re: Spurious EACCES errors from apache) Message-ID: <4127BD71.60500@freebsd.org> In-Reply-To: <20040815224844.GA26084@xor.obsecurity.org> References: <20040813235434.GA75875@xor.obsecurity.org> <20040814063541.GA43063@xor.obsecurity.org> <411FCCCC.8040508@freebsd.org> <20040815205946.GA18580@xor.obsecurity.org> <411FE1FA.5070703@freebsd.org> <20040815224844.GA26084@xor.obsecurity.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------090209070101040009030802 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Kris Kennaway wrote: > > ....can't you make it just not clear > permissions on files and directories that already exist? If they have > relaxed or insecure permissions, they had insecure permissions to > begin with and one may assume this is by intention. And, conversely, if they had restricted permissions, then we can assume that was by intention and we shouldn't loosen them. <sigh> That makes the current behavior actually less secure than it should be, doesn't it? Try the attached and let me know if that fixes it. Tim --------------090209070101040009030802 Content-Type: text/plain; name="archive_read_extract.c.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="archive_read_extract.c.diff" Index: archive_read_extract.c =================================================================== RCS file: /home/ncvs/src/lib/libarchive/archive_read_extract.c,v retrieving revision 1.33 diff -u -r1.33 archive_read_extract.c --- archive_read_extract.c 7 Aug 2004 03:09:28 -0000 1.33 +++ archive_read_extract.c 21 Aug 2004 21:21:27 -0000 @@ -479,7 +479,7 @@ if (extract->pst != NULL) { extract->pst = &extract->st; if (S_ISDIR(extract->pst->st_mode)) - goto success; + return (ARCHIVE_OK); /* It exists but isn't a dir. */ if ((flags & ARCHIVE_EXTRACT_UNLINK)) unlink(path); --------------090209070101040009030802--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4127BD71.60500>