A vulnerability exists in Microsoft Information Server (IIS) in which a crafted HTTP GET request may return the contents of a file on the affected server. A possible target of such a request might be a script that should only be executable (not readable) by unauthenticated remote users. The contents of such a file might contain sensitive information such as user credentials for access to a back-end database.
IIS contains a technology called ISAPI (Internet Services Application Programming Interface) which is designed to allow programmers to write custom applications which run on IIS. One ISAPI extension uses .HTR scripts to provide a password management interface via IIS. The .HTR ISAPI extension is implemented in the file
ISM.DLL. When IIS receives a request for a file ending in .HTR it performs some pre-processing of the request then passes it off to
ISM.DLL. If a malicious user crafts an HTTP request for an existing non-.HTR file and appends "%3F+.HTR" to the request then the requested file will be processed as if it were an .HTR file. Note that "%3F" is a unicode representation of the character "?". If the requested file is not an .HTR file, then the contents of the file will be returned to the requestor, with the exception of text enclosed in script delimiters "<% %>".
In order for this vulnerability to be exploited, specific locations in memory must contain zeros. Memory is zeroed as part of the initialization process, so the server would be most vulnerable soon after the IIS service was started and possibly up to the point at which the .HTR ISAPI code was first loaded into memory. Once the .HTR ISAPI code has been loaded and memory has been "dirtied," the chances that an exploit attempt will succeed are notably reduced.
The contents of files may be disclosed to unauthenticated remote users. Target files may be CGI scripts that contain sensitive configuration information such as database access credentials. This specific vulnerability does not allow an attacker to access files located outside the root directory of the web server.
Disable .HTR script mapping if not needed, as described in Microsoft Security Bulletin MS01-004:
1.\tOpen the Internet Services Manager
2.\tRight-click the web server, then choose Properties, then Master Properties, then WWW Service.
3.\tChoose Edit, then HomeDirectory, then Configuration
4.\tRemove the .HTR entry
It’s worth noting that, in addition to .HTR, Microsoft also recommends removing several other so-called script mappings.
Apply the appropriate vendor patch:
IIS 4.0: <http://www.microsoft.com/Downloads/Release.asp?ReleaseID=27492>
IIS 5.0: <http://www.microsoft.com/Downloads/Release.asp?ReleaseID=27491>
Note that these are the most recent patches as referenced in MS01-004.
CERT/CC also recommends the following documents on the secure configuration of Windows NT/2000 and IIS.
Windows NT Configuration Guidelines
Windows NT Security and Configuration Resources
IIS 4.0 Security Checklist
Secure Internet Information Services 5 Checklist
Filter by status: All Affected Not Affected Unknown
Filter by content: __ Additional information available
__ Sort by: Status Alphabetical
Updated: June 15, 2001
Microsoft has released Microsoft Security Bulletin MS01-004.
The vendor has not provided us with any further information regarding this vulnerability.
If you have feedback, comments, or additional information about this vulnerability, please send us email.
Group | Score | Vector
Base | |
Temporal | |
Environmental | |
The CERT Coordination Center thanks Georgi Guninski and Microsoft Product Security for information used in this document.
This document was written by Art Manion.
CVE IDs: | CVE-2001-0004
Severity Metric: | 13.17
Date Public: | 2001-01-08
Date First Published: | 2001-06-15
Date Last Updated: | 2001-08-07 13:09 UTC
Document Revision: | 30