What's the scope of the vulnerability?
This is a denial of service and buffer overrun vulnerability. It affects FrontPage Server Extensions 2000 and 2002 differently. With FrontPage Server Extensions 2000, the flaw could cause most CPU availability to be consumed until the web service is restarted. An attacker could use this vulnerability to conduct a denial of service attack against an affected web server. With FrontPage Server Extensions 2002, the same flaw in the interpreter causes a buffer overrun, potentially allowing an attacker to run code of the his choice.
Web site administrators who have used the IIS Lockdown Tool to configure their servers as static web servers are already protected against attacks that would attempt to exploit the vulnerability.
What causes the vulnerability?
The vulnerability results because of a flaw in the FrontPage Server Extensions SmartHTML interpreter. The interpreter can enter a mode in which it consumes all CPU availability on a web server using FrontPage Server Extensions 2000 or can result in a buffer overrun in FrontPage Server Extensions 2002, if it receives a request for a particular type of web file, along with some specific parameters.
What are the FrontPage Server Extensions?
FrontPage Server Extensions (FPSE) is a set of tools that can be installed on a FrontPage-based web site. They serve two basic functions: to allow authorized personnel to manage the server, add or change content, and perform other tasks; and to add functions that are frequently used by web pages, such as search and forms support.
FPSE installs by default as part of IIS 4.0, 5.0 and 5.1. However, it can be uninstalled if desired. Microsoft has long recommended that web administrators uninstall FPSE if not needed.
What is the SmartHTML interpreter?
The SmartHTML interpreter, shtml.dll, is part of FPSE, and supports certain types of dynamic web content. For instance, using SmartHTML, a web developer can build a web page that relies on FrontPage features, but not actually have those features embedded within the page until a user requests it.
For example, a web developer might want to embed the current date and time in a web page. In order to do that, the developer might use one of the WebBot components that come with FrontPage. A WebBot component gives an author CGI capabilities without writing CGI applications. The web page author inserts a WebBot into an HTML page. What actually gets inserted is a specially formatted HTML comment. A WebBot comment looks like a standard HTML comment with special notation that identifies the WebBot and its properties. You set the property values from a dialog box when the WebBot gets inserted. Each WebBot has its own dialog. Microsoft calls the WebBot notation SmartHTML, and HTML pages containing them SmartHTML pages.
A WebBot is "executed" when the FrontPage Editor saves the HTML page. A FrontPage Server Extension app scans the page for embedded WebBot components and replaces them with standard HTML text. As a result of this scanning process, a new page is created containing the standard HTML text generated from the WebBot components and the web visitor sees the date and time rendered on the web page.
What's wrong with the SmartHTML interpreter?
If a request for a certain type of web file is made in a particular way, it could have the effect on a web server using FrontPage Server Extensions 2000 of causing the SmartHTML interpreter to cycle endlessly, consuming all of the server's CPU availability and preventing the server from performing useful work. On a web server using FrontPage Server Extensions 2002, this same type of request could have the effect of causing a buffer overrun and potentially allowing an attacker to run malicious code on that server.
What could an attacker do via this vulnerability?
In the case of FrontPage Server Extensions 2000, an attacker could use this vulnerability to monopolize a server and prevent legitimate users from being able to use the web server. In the case of FrontPage Server Extensions 2002, an attacker could potentially cause a buffer overrun on the web server.
How might an attacker exploit the vulnerability?
The attack itself would only require that the attacker levy a particular type of request on the SmartHTML interpreter. Upon attempting to process the request (in the case of FrontPage Server Extensions 2000), the interpreter would begin to "freewheel", and would continue to do so until the administrator stopped and restarted the web service. In some cases, it might be necessary to reboot the system in order to do this. In the case of FrontPage Server Extensions 2002, the request could cause a buffer overrun in the interpreter and allow code of the attacker's choice to run in the context of the interpreter.
If an attacker exploited the buffer overrun in FrontPage Server Extensions 2002, in what context would the hostile code run?
In the case of the buffer overrun in FrontPage Server Extensions 2002, the malicious code would run as system, even though getting to system would take a convoluted exploit. Nonetheless, it is possible to that an attacker could create such an exploit and be running as system.
What steps could an administrator take to protect against the vulnerability?
Of course, the simplest way to eliminate the vulnerability is to install the patch. But even if the patch were not installed, a server wouldn't be at risk if FPSE had been uninstalled, or if the SmartHTML interpreter were not in use. For instance, the IIS Lockdown Tool, if used to configure a static web server, disables the interpreter.
How does the patch eliminate the vulnerability?
The patch causes the SmartHTML interpreter to reject the requests at issue here, as they aren't valid requests.