2011-03-16 09:59:55 +0100, sean finney:
> Hi Stephane,

Hi Sean,

> On Tue, Mar 15, 2011 at 04:17:50PM +0000, Stephane Chazelas wrote:
> > 09,39 *     * * *     root   [ -x /usr/lib/php5/maxlifetime ] && [ -d 
> > /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin 
> > +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm
>  
> > when /var/lib/php5/foo/passwd has exceeded its maxlifetime but
> > not the ones in /var/lib/php5/bar, assuming foo appears before
> > bar, find will output /var/lib/php5/foo/passwd and then spend a
> > few minutes in /var/lib/php5/bar during which the attacker can
> > replace his /var/lib/php5/foo directory with a symlink to /etc.
> > Then xargs will remove /etc/passwd.
> 
> Wouldn't xargs just remove the symlink?  I could see this being a
> problem if xargs was putting something *into* the files, but don't
> see the particular issue here.
[...]

No, please look carefully. It's not "passwd" that's the
symlink, it's foo (to /etc). rm would remove
/var/lib/php5/foo/passwd, that is it would unlink the "passwd"
entry from the directory pointed to by "foo", that is "/etc".

It's such a common mistake that it is documented in GNU
findutils documentation which I gave a reference to.

Cheers,
Stephane



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to