Australia's Leading Computer Emergency Response Team

AA-97.27 -- Buffer Overrun Vulnerability in Count.cgi cgi-bin Program
Date: 13 November 1997
Original URL: http://www.auscert.org.au/render.html?cid=1&it=1901

Click here for PGP verifiable version
-----BEGIN PGP SIGNED MESSAGE-----

===========================================================================
AA-97.27                        AUSCERT Advisory
          Buffer Overrun Vulnerability in Count.cgi cgi-bin Program
                                31 October 1997

Last Revised: -- 13 November 1997

		 Corrected URL in Section 4

		 A complete revision history is at the end of this file.

- ---------------------------------------------------------------------------

The Australian Computer Emergency Response Team (AUSCERT) has received
information that a buffer overrun vulnerability exists in the Count.cgi
cgi-bin program.

A new version of Count.cgi has been released addressing this vulnerability.

AUSCERT recommends that sites that have the Count.cgi cgi-bin program
installed take the steps outlined in Section 3 as soon as possible.

- ---------------------------------------------------------------------------

1.  Description

    AUSCERT has received information that a vulnerability exists in the
    Count.cgi cgi-bin program.  The Count.cgi cgi-bin program is used to
    record and display the number of times a WWW page has been accessed.

    Due to insufficient bounds checking on arguments which are supplied
    by users, it is possible to overwrite the internal stack space of the
    Count.cgi program while it is executing.  By supplying a carefully
    designed argument to the Count.cgi program, intruders may be able to
    force Count.cgi to execute arbitrary commands with the privileges of
    the httpd process.

    The Count.cgi program is extremely widely used.  Sites are encouraged
    to check for its existence and its possible exploitation.

    To check whether exploitation of this vulnerability has been attempted
    at your site, search for accesses to the Count.cgi program in your
    access logs.  An example of how to do this is:

        # grep -i 'Count.cgi' {WWW_HOME}/logs/access_log

    Where, {WWW_HOME} is the base directory for your web server.
    
    If this command returns anything, further investigation is necessary.
    Specifically, look for accesses to Count.cgi that contain long strings
    of nonsensical characters.

    If sites find any evidence showing that they have been probed using
    this vulnerability, they are encouraged to report the incident to
    AUSCERT or their local incident response team.  Reports of all attacks
    help AUSCERT gain a better overview of intruder activity within the
    constituency.

2.  Impact

    Remote user may be able to execute arbitrary commands with the privileges
    of the httpd process which answers HTTP requests.  This may be used
    to compromise the http server and under certain configurations gain
    privileged access.

3.  Workarounds/Solution

    AUSCERT recommends that sites upgrade to the current version of
    Count.cgi (Section 3.1).  For sites that can not immediately install
    the current version of Count.cgi, it is recommended that the workaround
    described in Section 3.2 be applied.

3.1 Upgrade to the current Count.cgi version

    The author of Count.cgi has recently released version 2.4 which
    addresses the vulnerability described in this advisory.  AUSCERT
    recommends that sites upgrade to the latest version as soon as possible.
    The current version is available from:
    
        http://www.fccc.edu/users/muquit/Count.html
        

3.2 Remove execute permissions

    To prevent the exploitation of the vulnerability described in this
    advisory, AUSCERT recommends that the execute permissions be removed
    from Count.cgi immediately.  Note that this will have the side effect
    of preventing the page hit counter from being incremented and displayed
    on web pages using Count.cgi.  The remainder of such web pages should
    still display.

4.  Additional measures

    It is important to note that attacks similar to this may succeed
    against any CGI program which has not been written with due consideration
    for security.  Sites using HTTP servers, and in particular CGI
    applications, are encouraged to develop an understanding of the security
    issues involved.

    Sites should consider taking this opportunity to examine their httpd
    configuration and web servers.  In particular, all CGI programs that
    are not required should be removed, and all those remaining should be
    examined for possible security vulnerabilities.

    It is also important to ensure that all child processes of httpd are
    running as a non-privileged user.  This is often a configurable option.
    See the documentation for your httpd distribution for more details.

    Numerous resources relating to WWW security are available.  The following
    pages may provide a useful starting point.  They include links describing 
    general WWW security, secure httpd setup and secure CGI programming.

        The World Wide Web Security FAQ:
                http://www-genome.wi.mit.edu/WWW/faqs/www-security-faq.html

        NSCA's "Security Concerns on the Web" Page:
                http://hoohoo.ncsa.uiuc.edu/security-1.0/

    The following books contain useful information including sections on
    secure programming techniques.

        "Web Security Sourcebook", Aviel Rubin, Daniel Geer and Marcus Ranum,
        John Wiley & Sons, Inc., 1997.

        "Practical Unix & Internet Security", Simson Garfinkel and 
        Gene Spafford, 2nd edition, O'Reilly and Associates, 1996.

    Please note that the URLs and books referenced in this advisory are
    not under AUSCERT's control and therefore AUSCERT cannot be responsible
    for their availability or content.
    
- ---------------------------------------------------------------------------
AUSCERT thanks Muhammad Muquit for his assistance in the preparation of
this advisory.
- ---------------------------------------------------------------------------

The AUSCERT team have made every effort to ensure that the information
contained in this document is accurate.  However, the decision to use the
information described is the responsibility of each user or organisation.
The appropriateness of this document for an organisation or individual
system should be considered before application in conjunction with local
policies and procedures.  AUSCERT takes no responsibility for the
consequences of applying the contents of this document.

If you believe that your system has been compromised, contact AUSCERT or
your representative in FIRST (Forum of Incident Response and Security
Teams).

AUSCERT is located at The University of Queensland within the Prentice
Centre.  AUSCERT is a full member of the Forum of Incident Response and
Security Teams (FIRST).

AUSCERT maintains an anonymous FTP service which is found on:
ftp://ftp.auscert.org.au/pub/.  This archive contains past SERT and AUSCERT
Advisories, and other computer security information.

AUSCERT also maintains a World Wide Web service which is found on:
http://www.auscert.org.au/.

Internet Email: auscert@auscert.org.au
Facsimile:	(07) 3365 4477
Telephone:	(07) 3365 4417 (International: +61 7 3365 4417)
		AUSCERT personnel answer during Queensland business hours
		which are GMT+10:00 (AEST).
		On call after hours for emergencies.

Postal:
Australian Computer Emergency Response Team
Prentice Centre
The University of Queensland
Brisbane
Qld.  4072.
AUSTRALIA


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Revision History

13 Nov 1997  URL for NSCA's "Security Concerns on the Web" Page in
	     Section 4 corrected.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3i
Charset: noconv
Comment: ftp://ftp.auscert.org.au/pub/auscert/AUSCERT_PGP.key

iQCVAwUBNGrliyh9+71yA2DNAQG0MwP/QGZ7nU8D7k3v7UQk+RJizJ6R02fjyMn4
+pK2hg2W+qpuzQV+D4lVsGhHW8fvgxYvB8W1TWbu45sJQtNv3kIopRBfEJUuN8H4
TBDLy8qB2sJpPvcWb4A12qyQCrLrBQRXr2gL7WmNpYfr7OZ+EyBk2rJ6b8/VBEdR
2QIh12r2s5s=
=q5ab
-----END PGP SIGNATURE-----