A buffer overflow vulnerability in IIS 4.0 and 5.0 could allow an intruder to execute arbitrary code on an IIS server with the privileges of the HTR ISAPI extension.
Chunked encoding is a means to transfer variable-sized units of data (called chunks) from a web client to a web server. There is a buffer overflow in the HTR code that deals with chunks.
Buffers used to store chunks are allocated on the heap, and therefore this vulnerability can be called a heap-based buffer overflow. Exploiting a heap-based buffer overflow to gain control of a system can sometimes be more difficult than exploiting other kinds of buffer overflows to gain control. However, the failure is more conducive to gaining control of the system than other typical heap-based buffer overflows. Quoting from Microsoft Security Bulletin MS02-028:
An intruder can interrupt the ordinary operation of a vulnerable IIS server or execute arbitrary code with the privileges of HTR ISAPI extension. On IIS 4.0, ASP.DLL runs as part of the operating system thus allowing an intruder to take full administrative control. On IIS 5.0, ASP.DLL runs with the privileges of the IWAM_computername account.
Apply a patch as described in Microsoft Security Bulletin MS02-028.
Until a patch can be applied, you may wish to disable the HTR ISAPI extension by using the IIS Lockdown tool, available at http://www.microsoft.com/technet/security/tools/locktool.asp. In addition, you can use the URLScan tool to block URLs that contain non-ASCII data. This may be useful in limiting the damage an intruder could do through this vulnerability. The HTR extension is not widely used, and should be disabled if not absolutely required.
Thanks to Ryan Permeh of Eeye Digital Security for reporting this vulnerability.
This document was written by Shawn V Hernan based on information provided by Microsoft in Microsoft Security Bulletin MS02-028.
|Date First Published:||2002-06-13|
|Date Last Updated:||2004-02-23 22:16 UTC|