Buffer Overrun Vulnerability in Count.cgi cgi-bin Program

Original issue date: November 5, 1997
Last revised: November 14, 1997
UPDATES - Corrected a URL.

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

The text of this advisory was originally released on October 31, 1997, as AA-97.27, developed by the Australian Computer Emergency Response Team. To more widely broadcast this information, we are reprinting the AUSCERT advisory here with their permission. Only the contact information at the end has changed: AUSCERT contact information has been replaced with CERT/CC contact information.

We will update this advisory as we receive additional information. Look for it in an "Updates" section at the end of the advisory.


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.


I. 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.

II. 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.

III. Workarounds/Solution

AUSCERT recommends that sites upgrade to the current version of Count.cgi (Section III.A). 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.

A. 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

B. 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.

IV. 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/

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.


UPDATES

November 14, 1997

CERT/CC received word that the URL for NSCA's "Security Concerns on the Web" in the AUSCERT advisory was not correct and should be changed to the following URL:

http://hoohoo.ncsa.uiuc.edu/security-1.0/


Our thanks to Zachary Uram at Carnegie Mellon University for bringing this to our attention.



Copyright 1997 Carnegie Mellon University.


Revision History
Nov. 14, 1997  UPDATES - Corrected a URL.