SkipNavigation
US-CERT
American Flag
  Vulnerability
Notes
Database

Search Vulnerability Notes

Vulnerability Notes Help Information


 
 View Notes By
  Name

ID Number

CVE Name

Date Public

Date Published

Date Updated

Severity Metric



 Other Documents
  Technical Alerts

Technical Bulletins

Alerts

Security Tips

 

Vulnerability Note VU#789543

IIS decodes filenames superfluously after applying security checks

Overview

Microsoft IIS decodes filenames after applying security checks, allowing an attacker to execute commands.

I. Description

To accomodate complex URIs, RFC 2396 specifies a means to encode arbitrary octets using hexadecimal characters and the percent sign (%). Quoting from RFC 2396:

    An escaped octet is encoded as a character triplet, consisting of the percent character "%" followed by the two hexadecimal digits representing the octet code. For example, "%20" is the escaped encoding for the US-ASCII space character.

    escaped = "%" hex hex
    hex = digit | "A" | "B" | "C" | "D" | "E" | "F"


This makes it possible to express certain characters and strings unambiguosly, but it requires the server to decode the information provided in a URI. Thus, if an HTTP server is provided a reference to a filename encoded as follows:
    A%20Filename%20With%20Spaces

It will decode each occurence of %20 to a space, and then it will try to find a file named
    A Filename With Spaces

This is a fundamental feature of HTTP servers, and is not specific to IIS in any way.

Any octet can be encoded in this way, including "normal" characters like "." (dot). Thus an intruder could attempt to access files outside of the web folders by encoding relative path references in this scheme. IIS includes checks for "illegal" URIs even after they have been decoded.

However, IIS decodes filenames twice. After the first decoding, IIS applies security checks to see if access to the specified file is permitted. The second decoding, which is superfluous, may result in a reference to a file outside the web folders, and after the security checks (on the results of the first decoding) have been applied.

For more information, see Microsoft Security Bulletin MS01-026.

II. Impact

Remote users can execute arbitrary commands with the privileges of the IUSR_machinename account.

III. Solution

Update your version of IIS according to the instructions in http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29787 (for IIS 4.0) and http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29764 (for IIS 5.0).

Systems Affected

VendorStatusDate Updated
MicrosoftVulnerable15-May-2001

References


http://www.microsoft.com/technet/security/bulletin/MS01-026.asp
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29787
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29764
http://www.nsfocus.com/english/homepage/sa01-02.htm
http://www.microsoft.com/technet/security/mbrsrvcl.asp
http://www.microsoft.com/technet/security/iis5chk.asp
http://www.microsoft.com/technet/security/iischk.asp
http://www.securityfocus.com/bid/2708

Credit

Our thanks to NSfocus who originally discovered this problem. Their original advisory can be found at http://www.nsfocus.com/english/homepage/sa01-02.htm.

This document was written by Shawn V. Hernan.

Other Information

Date Public05/14/2001
Date First Published05/15/2001 01:26:07 AM
Date Last Updated09/18/2001
CERT Advisory 
CVE NameCAN-2001-0333
US-CERT Technical Alerts 
Metric79.31
Document Revision12

If you have feedback, comments, or additional information about this vulnerability, please send us email.
 

 
Page Corner Image
Copyright 2001 Carnegie Mellon University
Disclaimers and copyright information
Get Adobe Reader Get Adobe Reader