Korean
<< Back
VID 22155
Severity 20
Port 80, ...
Protocol TCP
Class WWW
Detailed Description The Lotus Domino web server has a path revealing vulnerability via a request to a non-existent script in /cgi-bin.
Lotus Domino Server is an application framework for web based collaborative software. It runs on multiple platforms including Windows and UNIX. By default, this server has the /cgi-bin virtual path, is mapped to \domino\cgi-bin directory. One of some vulnerabilities in handling of CGI requests is a path revealing vulnerability that allows the remote attacker to determine the real path of the server. When a remote attacker sends the request for a non-existent script in the /cgi-bin directory as the following:

GET /cgi-bin/non_existent_file HTTP/1.0

The Domino server return the error message that includes the real path of the server as the following:

HTTP/1.1 500 Bad script request -- no variation is executable
Server: Lotus-Domino/0
.....
Error 500
Bad script request -- no variation of 'c:/notes/data/domino/cgi-bin/non_existent_file' is executable

A remote attacker can obtain the signification information of system such as OS, set up of file system. This information can be used to formulate further attacks.

* Platforms Affected:
Lotus Domino HTTP 4.6.x

* References:
http://online.securityfocus.com/bid/881
http://www.iss.net/security_center/static/4389.php
Recommendation The workaround is to create a URL redirect in the DOMCFG.NSF database that redirects any anomalous CGI requests to another URL. Since any non-existent CGI calls can cause this error, the following workaround is suggested.

* If the customer does not require the use of any CGI's, then the entire /cgi-bin directory can be redirected to another URL (a Notes database, or html file). If any "/cgi-bin" requests are made, they will be directed to this URL and are not processed as CGI.

* If the customer does require the use of CGI's the following setup will be required:

1) In the HTTP section of the Server Document, change the "CGI URL path" field to a different URL path. This does not require a change for the "CGI directory" field, such that the location on the hard drive for CGI's will remain the same. Only the URL which invokes CGI's will be altered.

Example: The default CGI URL path is "/cgi-bin"; change this to "/scripts/cgi-bin". Now, whenever a /cgi-bin request is made, it is recognized as a URL instead of a CGI.

2) Create a URL Redirect document in the DOMCFG.NSF for each specific CGI that resides on the server. Specify the incoming URL path as "/cgi-bin", and the redirection URL as "/scripts/cgi-bin".

Example: A customer has a CGI named "Xrun.cgi" in the domino/cgi-bin directory. Regularly, any requests to execute the CGI would come in as "http://hostname/cgi-bin/Xrun.cgi". This URL request is redirected to "http://hostname/scripts/cgi-bin/Xrun.cgi", where Domino will recognize it as a CGI, and run the script. In this case, the "/cgi-bin" URL itself is not recognized as a CGI request. It is only the redirection to "/scripts/cgi-bin" that will cause the Domino server to process it as a CGI script
Related URL CVE-2000-0021 (CVE)
Related URL (SecurityFocus)
Related URL (ISS)