Re: FWD: iDEFENSE Security Advisory 02.25.05: WU-FTPD File Globbing Denial of Service Vulnerability

Ted Keller <[email protected]> Thu, 3 Mar 2005 21:13:45 -0500 (EST)
Newsgroups gmane.network.ftp.wuftpd.devel
Message-ID <[email protected]>
I haven't had a chance to review this patch - and therefor, no chance test
it against the vulnerability published.  Has anyone else validated the
patch that Chris published?  And if so - is this a patch that we can
publish on the wu-ftpd site and notify the security lists that a viable
solution is available?

ted keller


On Mon, 28 Feb 2005, Bob Luckin wrote:

> Chris,
>
> Glad it was useful.  However, I don't have write access to the Web/FTP site, so
> someone else will have to upload the patch.  Kent ?  Koos ?
>
> Cheers, Bob
>
> On Sat, Feb 26, 2005 at 09:58:06AM +0000, Chris Butler wrote:
> > On Fri, Feb 25, 2005 at 04:28:39PM -0600, Bob Luckin wrote:
> > > I have an old development snapshot (which I downloaded in 2002 !) which
> > > contains the following comment near the start of the CHANGES file :-
> > >
> > >    Changes in 2.8.0: Released <not yet>
> > >
> > >     o  Fixed a problem which allowed file globs with series of stars to hang
> > >        the server.  In fixpath, reduce all series of stars to a single star.
> > >
> > > This might address the vulnerability discussed below, although I'm not sure.
> > > I suggest you pull the latest development snapshot and have a look to see if
> > > it really has fixed the problem.
> >
> > Thanks for letting me know about this! Saved me a lot of time, as well
> > as fixing the problem in a better way than I was going to.
> >
> > After copying the changes from the ftpglob function into the 2.6.2 code,
> > I can confirm that the attached patch fixes the DoS vulnerability. It
> > should probably be announced properly on the website if that's possible.
> >
> > --
> > Chris Butler    <[email protected]>
> >  Debian WU-FTPD package maintainer
> >    GnuPG Key ID: 1024D/D097A261
>
> > Index: ftpd.c
> > ===================================================================
> > --- ftpd.c	(revision 39)
> > +++ ftpd.c	(working copy)
> > @@ -7510,6 +7510,8 @@
> >  	    in++;
> >  	    if (*in == '/')
> >  		in++;
> > +	    else
> > +		out++;
> >  	}
> >  	else if ((in[0] == '.') && (in[1] == '.') && ((in[2] == '/') || (in[2] == '\0'))) {
> >  	    if (out == path) {
> > @@ -7538,6 +7540,9 @@
> >  	}
> >  	else {
> >  	    do
> > +              if ((in[0] == '*') && (in[1] == '*'))
> > +                in++;
> > +              else
> >  		*out++ = *in++;
> >  	    while ((*in != '\0') && (*in != '/'));
> >  	    if (*in == '/')
>
>
> --
> Bob Luckin      [email protected]      "Coder, adapt; FTP Ada, redo C"
>