Subject: Re: SECURITY: wu-ftpd-2.4.2b11-8 problem

From: Alain Magloire <[email-masked]>
Date: Fri, 17 Jan 1997 16:48:04 -0500 (EST)

According to `Jon Lewis':
> 
> Is this the same signal hole mentioned recently in bugtraq, where a
> different fix was suggested?
> 

yes
but I would say stick with `David Greenman' patch(unless you  know 
what you're doing).  Mr Greenman spent a lot of time
screening the code and it showed.  His patch is elegant(a few lines)
and efficient.

They were a lot of patches on BUGTRAQ playing with the
signal handlers and all. It was killing flies whith a
magnum 45.

Some uses sigset() sig*() which differs from OS to OS.
So they may do more arm then good.

The race condition for the SIGPIPE|SIGURG stands a
chance to be win because of acl_remove()
(it can go to sleep(1).. ).

Like David pointed it out to me
do_logout() is the only place(transflag is set)
... at least the only place he had found ;-)

--
la joie de vivre, alain

---

From: "Karl O. Pinc" <[email-masked]>
Date: Fri, 17 Jan 1997 16:45:14 -0600

>screening the code and it showed.  His patch is elegant(a few lines)

Sorry to bring this up to the list again then.  It seemed like a good idea
at the time.

Karl

May the Legos (TM) always be swept from your path in the night.

---

From: Albert Lunde <[email-masked]>
Date: Fri, 17 Jan 1997 17:29:49 -0600

>So they may do more arm then good.

One approach to dealing with differences in signals between Unix versions
appears in "Advanced Programming in the Unix Environment" by W. Richard
Stevens. In section 10.15, he provides a re-implementation of "signal" in
terms of "sigaction" and related routines.

If this routine could be #ifdef into the code, it might provide some of the
benfits of a more complex patch (reliable signals on more versions of Unix.)

---
    Albert Lunde                      [email-masked]

---

From: David Greenman <[email-masked]>
Date: Fri, 17 Jan 1997 15:58:38 -0800

>benfits of a more complex patch (reliable signals on more versions of Unix.)

   Blocking the signals is simply wrong. It will cause ftpd to miss important
connection close signals that could result in it hanging indefinately. Some
operating systems have a mechanism for defering signal delivery, but this is
not very portable.

-DG

David Greenman
Core-team/Principal Architect, The FreeBSD Project