|
Microsoft Security Bulletin MS02-065Buffer Overrun in Microsoft Data Access Components Could Lead to Code Execution (Q329414)Originally posted: November 20, 2002 Summary
Note: The vulnerability does not affect Windows XP, despite the fact that it uses Internet Explorer 6.0. Windows XP customers do not need to take any action. End User Bulletin: An end user version of this bulletin is available at: http://www.microsoft.com/security/security_bulletins/ms02-065.asp
MDAC provides the underlying functionality for a number of database operations, such as connecting to remote databases and returning data to a client. One of the MDAC components, known as Remote Data Services (RDS), provides functionality that support three-tiered architectures – that is, architectures in which a client’s requests for service from a back-end database are intermediated through a web site that applies business logic to them. A security vulnerability is present in the RDS implementation, specifically, in a function called the RDS Data Stub, whose purpose it is to parse incoming HTTP requests and generate RDS commands. A security vulnerability resulting from an unchecked buffer in the Data Stub affects versions of MDAC prior to version 2.7 (the version that shipped with Windows XP). By sending a specially malformed HTTP request to the Data Stub, an attacker could cause data of his or her choice to overrun onto the heap. Although heap overruns are typically more difficult to exploit than the more-common stack overrun, Microsoft has confirmed that in this case it would be possible to exploit the vulnerability to run code of the attacker’s choice on the user’s system. Both web servers and web clients are at risk from the vulnerability:
Clearly, this vulnerability is very serious, and Microsoft recommends that all customers whose systems could be affected by them take appropriate action immediately.
Before deploying the patch, customers should familiarize themselves with the caveats discussed in the FAQ and in the Caveats section below. Mitigating factors: Web Servers
Web clients
Severity Rating:
The above assessment is based on the types of systems affected by the vulnerability, their typical deployment patterns, and the effect that exploiting the vulnerability would have on them. This vulnerability is rated critical because an attacker could take over an IIS server or an Internet Explorer client and run code. Any IIS server with MDAC and all Internet Explorer clients should apply the patch immediately. Vulnerability identifier: CAN-2002-1142 Tested Versions:
What causes the vulnerability The vulnerability results because of an unchecked buffer in one of the Microsoft Data Access Components – specifically, the Remote Access Service Data Stub. What are the Microsoft Data Access Components? Microsoft Data Access Components (MDAC) is a collection of components that make it easy for programs to access databases and manipulate the data within them. Modern databases may take a variety of forms (e.g., SQL databases, Access databases, XML files, and so forth) and be housed in a variety of locations (e.g., on the local system or on a remote database server). MDAC provides a consolidated set of functions for working with all of them in a consistent manner. Do I have MDAC on my system? The answer is almost certainly yes. MDAC is a ubiquitous technology:
What are the Remote Data Services? Remote Data Services (RDS) is a component of MDAC. RDS provides a function that’s frequently needed in Internet-based scenarios, namely, the ability to access data sources indirectly through a three-tiered system. If you’ve ever visited a web site that implements a search function, you’ve participated in a three-tiered database system. In such a system, the user (who occupies the so-called User Interface Tier) interrogates a database (which occupies the so-called Database Tier), but doesn’t do so directly. Instead, he or she provides requests to an intermediary tier, known as the Business Logic Tier. In most Internet scenarios, the Business Logic Tier resides on a web server. The purpose of the Business Logic Tier is to determine what the user wants, translate that request into a series of database commands, check those commands to ensure that the user is really allowed to make them, and then send them to the Database Tier. When the response from the database arrives, the Business Logic Tier may need to translate the results into a form that’s more meaningful for the user. RDS provides many of the functions needed to implement the Business Logic Tier of such a system; specifically, it provides functions that, on a web server, allow it to interpret database requests from a client and, on a client, interpret responses to such requests when they're received from the web server. What’s wrong with RDS? One of the components of RDS that was delivered in MDAC 2.4, 2.5 and 2.6 contains an unchecked buffer. On the server side, this component is known as the RDS Data Stub and on the client side it is called the Data Space cotrol. These components implement some of the functionality of the Business Logic Tier. In particular, the Data Stub processes HTTP requests and transforms them into RDS requests that can then be passed to the RDS core functionality for processing. What do you mean when you say that the RDS Data Stub has an unchecked buffer? A buffer is a location in memory that’s allocated to hold data of some type. It’s the responsibility of the program that owns the buffer (in this case, the RDS Data Stub) to ensure that it never puts more data into the buffer than it can hold – otherwise, the data will spill into surrounding memory and overwrite the data there, resulting in a buffer overrun. Buffer overruns are dangerous. In the least serious case, if a buffer were overrun with random data, it would have the effect of corrupting the memory that it overran; in most cases, this would lead to the program, or potentially the system itself, failing. But if the buffer were overrun with carefully selected data, the effect could be to, in essence, alter the program so that it now performed new functions. Clearly, any flaw that could enable an attacker to turn an already running program to his or her own purposes is serious. What would this vulnerability enable an attacker to do? This vulnerability would enable an attacker to send an HTTP request to an affected system that, when processed by the RDS Data Stub, would cause a buffer overrun. Potentially, any system that has MDAC, and in particular RDS, installed and running is at risk. But two types of systems are at special risk:
Who could exploit the vulnerability? It would depend on whether the attacker wanted to exploit the vulnerability against a web server or a web client.
I run a web server. How can I tell whether my system is at risk? In order for a web server to be at risk from the vulnerability, both of the following must be true:
It’s important to keep in mind, though, that if the web server is also used as a web client occasionally (that is, if you browse the web or read email from the server), it could still be at risk. The server-based and client-based vulnerabilities are completely independent of one another. I’ve installed the URLScan tool on my web server. Will it help protect my system? Yes. The URLScan tool restricts the type of HTTP requests that the server will process. Of particular interest in this case is the fact that URLScan’s default ruleset will only allow HTTP requests to be processed by the server if they consist of only ASCII data. It would be extremely difficult to create a request that would alter the operation of the IIS service using only valid ASCII data; however, even in this case, an attacker could still cause the service to fail. My system is a web client. How can I tell if it’s at risk? The first thing to do is check whether you’re running Windows XP. If you are, your system is at no risk – the version of MDAC that shipped with Windows XP does not contain the vulnerability. All other versions of Windows are at risk. Several versions of Windows ship with a vulnerable version of MDAC, as did several versions of Internet Explorer. As a result, systems running anything other than Windows XP are almost certainly at risk and need the patch. You said that Windows XP isn’t vulnerable, but that customers using Internet Explorer 6.0 are. Yet Internet Explorer 6.0 shipped as part of Windows XP. Why isn’t Windows XP vulnerable? When Internet Explorer 6.0 is installed on a system, it checks to see whether there’s a version of MDAC already installed; if there isn’t one, it installs it. In the case of Windows XP, a version of MDAC is already installed – one that isn’t affected by the vulnerability – and so Internet Explorer 6.0 uses that version. Does the web site-based or HTML mail-based attack vector pose the greater threat to web clients? There would be advantages and disadvantages for the attacker regardless of the attack vector chosen. The primary advantage, from the attacker's perspective, of hosting the web page on a web site is that most computers would be vulnerable to such an attack unless the patch had been installed. The primary disadvantage is that the attacker wouldn't have any way to force users to visit the site. Instead, he or she would need to lure them there, typically by getting them to click a link that would take them to the attacker's site. In contrast, sending the web page as an HTML mail would offer the attacker the advantage of being able to target specific users, and send it directly to them. The primary disadvantage is that the HTML mail-based attack would fail on many users' systems. Specifically, even without the patch, the vulnerability could not be exploited via HTML mail on systems where Outlook 98 or Outlook 2000 were used in conjunction with the Outlook Email Security Update, or Outlook Express 6 or Outlook 2002 were used in their default configurations. My system is a web server, and I've confirmed that it's not vulnerable. However, I also sometimes browse the Web from that system. Do I need to install the patch? Yes. Any system that acts as a web client needs the patch. This is true even if the system also happens to be a web server, and even if the web server has been configured in a way to protects it from the vulnerability. Is there a separate patch for MDAC and Internet Explorer? No. We have developed a single patch that will install the fixes for both MDAC and Internet Explorer at the same time. The patch will determine what version of MDAC, if any, your system is using and apply the fixes to all vulnerable components on it. If there are no vulnerable components on the system, the patch will do nothing. I don’t know if MDAC is installed. Do I need to determine that first before I apply the patch? No. The patch will determine what version of MDAC, if any, is installed on your system and apply the needed fixes. Patch availability
Inclusion in future service packs:
Reboot needed:
Patch can be uninstalled: No. Superseded patches: None. Verifying patch installation:
Caveats:
Users can always upgrade to the latest version of MDAC since MDAC 2.7 is not affected by this vulnerability. Localization: Obtaining other security patches:
Other information:
Security Resources: The Microsoft TechNet Security Web Site provides additional information about security in Microsoft products. Disclaimer: Revisions:
|
|