[VulnDiscuss] Re: zkfingerd 0.9.1 format string vulnerabilities (#NISR16122002A)

"Frank Boldewin" <[email protected]>
Newsgroups gmane.comp.security.vulnerabilities.watch.general,gmane.comp.security.bugtraq
Message-ID <[email protected]>
hi,

as far as i know there's no distro which ships with that daemon or even
gives it a 4000 perm.
further

----- Original Message -----
From: "NGSSoftware Insight Security Research" <[email protected]>
To: <[email protected]>; <[email protected]>
Sent: Monday, December 16, 2002 8:53 PM
Subject: zkfingerd 0.9.1 format string vulnerabilities (#NISR16122002A)


> NGSSoftware Insight Security Research Advisory
>
> Name: zkfingerd Format String vulnerability
> Systems: zkfingerd version 0.9.1 and earlier
> Severity: High Risk
> Vendor URL: http://sourceforge.net/projects/zkfingerd
> Author: David Litchfield ([email protected])
> Advisory URL: http://www.ngssoftware.com/advisories/zkfingerd.txt
> Date: 16th December 2002
> Advisory number: #NISR16122002A
>
>
> Description
> ***********
> zkfingerd is an open-source replacement for standard finger daemons
running
> on Linux systems. zkfingerd suffers from several format string
> vulnerabilities that, when exploited, can allow the remote execution of
> arbitrary code.
>
> Details
> *******
> The first format string vulnerability can be found in the putlog()
function
> of log.c. An unsafe call is made to the syslog() function.
>
> ..
> syslog(LOG_INFO, c);
> ..
>
> To make this safe a format string should be specified:
>
> ..
> syslog(LOG_INFO,"%s", c);
> ..
>
> By fingering a "user" and designing a special format string as the user,
it
> is possible to overwrite arbitray locations in memory with values supplied
> by an attacker using the %n specifier. This can lead to arbitrary code
> execution.
>
>
> Further format string vulnerabilities, that all have the same root cause,
> are due to the say() function:
>
>
> void
> say(char *fmt, ...)
> {
>         va_list ap;
>
>         va_start(ap, fmt);
>         vprintf(fmt, ap);
>         va_end(ap);
>
>         printf("\r\n");
>         fflush(stdout);
>
>         return;
> }
>
>
> If, when say() is called, the first argument is not a format string but
> input a remote user can control then the vulnerability will manifest
itself.
> One such place is in the file_list() function:
>
> if(S_ISDIR(st.st_mode))
> {
>         char    *y, *z;
>         files++;
>         z = xmalloc(strlen(de->d_name) + 2);
>         strcpy(z, de->d_name);
>         strcat(z, "/");
>         x = xmalloc(32 + strlen(de->d_name));
>         y = my_ctime(st.st_mtime);
>         sprintf(x, "\t%-12s\t%s\t-- DIR --", z, y);
>         say(x);
>         xfree(x);
>         xfree(y);
>         xfree(z);
>         continue;
> }
>
> In this case if the name of a directory contains an attacker supplied
format
> string then it can overwrite arbitrary locations in memory with attacker
> supplied values.
>
>
> Fix Information
> ***************
> NGSSoftware alerted the author of zkfingerd with these problems on the
27th
> of November, 2002. The author responed quickly and made the relevant
> security fixes. Patched source code can be download from CVS @
Sourceforge.
>
> http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/zkfingerd/zkfingerd/src/
>
> A check for this issue has been added to Typhon III, NGSSoftware's
advanced
> vulnerability assessment tool, of which, more information is available at
> the NGSSite: http://www.ngssoftware.com/
>
> For more information about format string vulnerabilities please read
>
> http://www.nextgenss.com/papers/win32format.doc
> http://julianor.tripod.com/usfs.html
>
>
> About NGSSoftware
> *****************
> NGSSoftware design, research and develop intelligent, advanced application
> security assessment scanners. Based in the United Kingdom, NGSSoftware
have
> offices in the South of London and the East Coast of Scotland.
NGSSoftware's
> sister company NGSConsulting, offers best of breed security consulting
> services, specialising in application, host and network security
> assessments.
>
> http://www.ngssoftware.com/
> http://www.ngsconsulting.com/
>
> Telephone +44 208 401 0070
> Fax +44 208 401 0076
> [email protected]
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.