[17069] in bugtraq

home help back first fref pref prev next nref lref last post

talkd [WAS: Re: OpenBSD Security Advisory]

daemon@ATHENA.MIT.EDU (Chris Evans)
Thu Oct 5 23:29:35 2000

MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Message-ID:  <Pine.LNX.4.21.0010052329180.29675-100000@ferret.lmh.ox.ac.uk>
Date:         Fri, 6 Oct 2000 00:00:16 +0100
Reply-To: Chris Evans <chris@SCARY.BEASTS.ORG>
From: Chris Evans <chris@SCARY.BEASTS.ORG>
X-To:         K2 <ktwo@KTWO.CA>
To: BUGTRAQ@SECURITYFOCUS.COM
In-Reply-To:  <39DADCB7.4E416D8B@ktwo.ca>

On Wed, 4 Oct 2000, K2 wrote:

[...]

> OK, hold on a second....  The following "snip snip" is a little long...
> and I have not verified it, (a guaranteed DoS though).
>
> talkd, A DEFAULT service.

[...]

>         *bptr = '\0';
>         fprintf(tf, big_buf);
>         fflush(tf);

This is in announce.c, function print_mesg(). "big_buf" contains, as far
as I can see, data supplied by the remote (for example the remote
username). %'s don't seem to get filtered

So, seeing this post I was concerned :-)

I've investigated things from a Linux point of view. Most Linux vendors
will be shipping talkd from the Linux netkit. Also, most Linux vendors
listen on the talkd port by default! Good news - current Linux netkit is
NOT VULNERABLE. Older versions (2+ yrs) are.

More version details;

RedHat-7.0; talk-0.17-7.src.rpm: SAFE (write(2) used)
...
        *bptr = 0;
        write(fd, big_buf, strlen(big_buf));
...

RedHat-6.0; talk-0.11-1.src.rpm: SAFE (write(2) used)
...
        *bptr = 0;
        write(fd, big_buf, strlen(big_buf));
...

RedHat-5.2; ntalk-0.10-4.src.rpm: POSSIBLY VULNERABLE
                                  (fprintf(3) used buggily)
...
        *bptr = 0;
        fprintf(tf, big_buf);
        fflush(tf);
...


Cheers
Chris

home help back first fref pref prev next nref lref last post