[NT] Buffer Overrun in Microsoft Data Access Components Could Lead to Code Execution
From: support@securiteam.com
Date: 11/21/02
- Previous message: support@securiteam.com: "[NT] Remotely Exploitable Buffer Overflow in Microsoft MDAC (Technical details)"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
From: support@securiteam.com To: list@securiteam.com Date: 21 Nov 2002 15:14:00 +0200
The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
- - promotion
Beyond Security would like to welcome Tiscali World Online
to our service provider team.
For more info on their service offering IP-Secure,
please visit http://www.worldonline.co.za/services/work_ip.asp
- - - - - - - - -
Buffer Overrun in Microsoft Data Access Components Could Lead to Code
Execution
------------------------------------------------------------------------
SUMMARY
Microsoft Data Access Components (MDAC) is a collection of components used
to provide database connectivity on Windows platforms. MDAC is a
ubiquitous technology, and it is likely to be present on most Windows
systems:
* It is included by default as part of Windows XP, Windows 2000, and
Windows Millennium.
* It is available for download as a stand-alone technology in its own
right
* It is either included in or installed by a number of other products and
technologies. For instance, MDAC is included in the Windows NTŪ 4.0 Option
Pack, and some MDAC components are present as part of Internet Explorer
even if MDAC itself is not installed.
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:
* Web servers are at risk if a vulnerable version of MDAC is installed
and running on the server. To exploit the vulnerability against such a web
server, an attacker would need to establish a connection with the server
and then send a specially malformed HTTP request to it, that would have
the effect of overrunning the buffer with the attacker's chosen data. The
code would run in the security context of the IIS service (which, by
default, runs in the LocalSystem context)
* Web clients are at risk in almost every case, as the RDS Data Stub is
included with all current versions of Internet Explorer and there is no
option to disable it. To exploit the vulnerability against a client, an
attacker would need to host a web page that, when opened, would send an
HTTP reply to the user's system and overrun the buffer with the attacker's
chosen data. The web page could be hosted on a web site or sent directly
to users as an HTML Mail. The code would run in the security context of
the user.
Clearly, this vulnerability is very serious, and Microsoft recommends that
all customers whose systems could be affected by them take appropriate
action immediately.
* Customers using Windows XP, or who have installed MDAC 2.7 on their
systems are at no risk and do not need to take any action.
* Web server administrators who are running an affected version of MDAC
should either install the patch, disable MDAC and/or RDS, or upgrade to
MDAC 2.7, which is not affected by the vulnerability.
* Web client users who are running an affected version of MDAC should
install the patch immediately on any system that is used for web browsing.
It is important to stress that the latter guidance applies to any system
used for web browsing, regardless of any other protective measures that
have already been taken. For instance, a web server on which RDS had been
disabled would still need the patch if it was occasionally used as a web
client.
Before deploying the patch, customers should familiarize themselves with
the caveats discussed in the FAQ and in the Caveats section below.
DETAILS
Vulnerable systems:
* Microsoft Data Access Components (MDAC) 2.1
* Microsoft Data Access Components (MDAC) 2.5
* Microsoft Data Access Components (MDAC) 2.6
* Microsoft Internet Explorer 5.01
* Microsoft Internet Explorer 5.5
* Microsoft Internet Explorer 6.0
Mitigating factors:
Web Servers
* Web servers that are using MDAC version 2.7 (the version that shipped
with Windows XP) or later are not at risk from the vulnerability.
* Even if a vulnerable version of MDAC were installed, a web server would
only be at risk if RDS were enabled. RDS is disabled by default on clean
installations of Windows XP and Windows 2000, and can be disabled on other
systems by following the guidance in the IIS Security Checklist. In
addition, the IIS Lockdown Tool will automatically disable RDS when used
in its default configuration.
* If the URLScan tool were deployed with its default ruleset (which
allows only ASCII data to be present in an HTTP request), it is likely
that the vulnerability could only be used for denial of service attacks.
* IIS can be configured to run with fewer than administrative privileges.
If this has been done, it would likewise limit the privileges that an
attacker could gain through the vulnerability.
* IP address restrictions, if applied to the RDS virtual directory, could
enable the administrator to restrict access to only trusted users. This
is, however, not practical for most web server scenarios.
Web clients:
* Web clients that are using MDAC version 2.7 (the version that shipped
with Windows XP) or later are not at risk from the vulnerability.
* The HTML mail-based attack vector could not be exploited automatically
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.
* Exploiting the vulnerability would convey to the attacker only the
user's privileges on the system. Users whose accounts are configured to
have few privileges on the system would be at less risk than ones who
operate with administrative privileges.
Patch availability:
Download locations for this patch
* The following patch can be installed on all affected platforms:
<http://www.microsoft.com/downloads/Release.asp?ReleaseID=44733>
http://www.microsoft.com/downloads/Release.asp?ReleaseID=44733
What vulnerability is eliminated by the patch?
This patch eliminates a security vulnerability affecting many web servers
and clients. However, before installing it, it's worth reviewing an
important caveat associated with the patch.
What caveats are associated with the patch?
Although the patch does address the vulnerability, there is a niche
scenario through which a patched system could, under unusual conditions,
be made vulnerable again. This scenario results because it is not possible
to set the "Kill Bit" used by one of the vulnerable components.
What's the "Kill Bit"?
The Kill Bit is a method by which an ActiveX control can be prevented from
ever being invoked via Internet Explorer, even if it's present on the
system. (More information on the Kill Bit is available in Microsoft
Knowledge Base article Q240797). Typically, when a security vulnerability
involves an ActiveX control, the patch delivers a new control and sets the
Kill Bit on the vulnerable control. However, it isn't feasible to do so in
this case.
Why isn't it feasible to set the Kill Bit in this case?
The ActiveX control involved in these vulnerabilities is used in many
applications and web pages to access data. Many applications, including
third-party applications, contain hard-coded references to it; if the
patch set the Kill Bit, the web pages would no longer function at all -
even with the new, corrected version. As a result, the patch updates the
control to remove the vulnerabilities, but does not provide a brand-new
control and set the Kill Bit on the old one.
What the risk associated with taking this approach?
Because the ActiveX control at issue here has been digitally signed by
Microsoft, and the signature is still valid, it could be possible under
certain conditions for an attacker to re-introduce the old, vulnerable
version of the control onto a system that had been patched, thereby making
it vulnerable again. In order for this happen, though, the user would need
to either visit a web site operated by a malicious person or open an HTML
mail from one. (It's worth noting that in the case of HTML mail, customers
using either Outlook 6 or Outlook 2002 in the default configuration, or
Outlook 98 or 2000 in conjunction with the Outlook Email Security Update,
would be at no risk).
Why would an attacker be able to silently re-introduce the old version of
the control? Shouldn't there be a warning message?
A warning message is generated anytime there's an error associated with a
digital signature (e.g., a bad signature or expired certificate) or the
signer isn't trusted. But in this case, the digital signature on the old
version of the control is still valid, and the signer is Microsoft - which
is a trusted publisher in many cases. Because of this, most users would
not see a warning message of any kind if the old control was
re-introduced.
Why not revoke the certificate that was used to sign the control?
The certificate that was used to sign the control is still valid - the
problem lies in the control, not the certificate. In addition, a number of
controls have been signed using the same certificate, and revoking the
certificate would cause all of them to become invalid.
What steps could I follow to prevent the control from being silently
re-introduced onto my system?
The simplest way is to make sure you have no trusted publishers, including
Microsoft. If you do that, any attempt by either a web page or an HTML
mail to download an ActiveX control will generate a warning message.
Here's how to empty the Trusted Publishers list:
1) In Internet Explorer, choose Tools, then Internet Options.
2) Select the Content tab. In the Certificates section of the page, click
on Publishers.
3) In the Certificates dialog, click on the Trusted Publishers tab.
4) For each certificate in the list, click on the certificate and then
select Remove. Confirm that you want to remove the entry.
5) When you've removed all entries from the list, select Close to close
the Certificates dialog, then click on OK to close the Internet Options
dialog.
After emptying the Trusted Publishers list, if I do see a warning saying
that a web site or an HTML mail wants to download a control, how can I
decide whether to let it proceed?
The best criterion to use is whether you trust the web site or the sender
of the HTML mail. If you don't trust the web site offering the control,
cancel the download.
Will Microsoft eventually set the Kill Bit on this control?
Yes. Microsoft is developing a new technology that will enable it to set
the Kill Bit on the vulnerable version of the control without forcing
users to re-author web pages containing references to these controls. When
the new technology is available, we will ensure that this fix uses it.
What's the scope of the vulnerability?
This is a buffer overrun vulnerability. An attacker who successfully
exploited it could gain complete control over an affected system, thereby
gaining the ability to take any action that the legitimate user could
take. This could include creating, modifying or deleting data on the
system, reconfiguring it, reformatting the hard drive, or running programs
of the attacker's choice on it. The vulnerability poses a risk both to web
servers and web clients, and Microsoft recommends that all users take
action immediately to ensure that their systems are protected against it.
Windows XP systems, whether serving as Web servers or clients, are not
affected by the vulnerability. Other systems have varying degrees of
options available to them:
* Web servers have a range of actions they can take to protect their
systems, from installing the patch to disabling the affected function.
Even in cases where a server is vulnerable, tools such as URLScan would
likely limit the use of the vulnerability to denial of service attacks
only.
* Web clients - including Web servers that are sometimes used for Web
browsing - have fewer options. Web clients running anything but Windows XP
can only be made secure by applying the patch.
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:
* It installs as part of Windows XP, Windows Me, Windows 2000. (It's
worth noting, though, that the version installed by Windows XP does not
have this vulnerability)
* It's available for download from the Microsoft web site.
* It's installed by many other Microsoft applications. To name just a few
cases, it's installed as part of the Windows NT 4.0 Option Pack and by
both Microsoft Access and SQL Server.
* Some of the components in MDAC are included in other Microsoft
technologies. For instance, Internet Explorer includes some MDAC
functions. As we'll discuss later, this turns out to be an important
factor in this case.
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:
* Web servers. Many web servers have vulnerable versions of RDS running
on them. If an attacker successfully exploited the vulnerability against
such a server, he or she could either destabilize it or, in the worst
case, gain complete control over it. The attacker could then deface web
pages, attack users who subsequently visited the site, or simply reformat
the hard drive.
* Web clients. By a web client, we mean any system that's used to process
web pages; typical examples include home computers, laptops or
workstations that are used to browse the Web or handle email. The RDS Data
Stub is present on these systems as part of Internet Explorer. If an
attacker successfully exploited the vulnerability against such a system,
he or she could either cause Internet Explorer fail (which would have no
lasting effects) or, in the worst case, gain the user's privileges on it.
The attacker could then take any action on the system that the user could
take.
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.
* Web server. Any user who could establish a web session with an affected
server could exploit the vulnerability, by sending it an appropriate HTTP
request.
* Web client. A user could exploit the vulnerability against a web client
if he or she were able to construct a web page that would send an
appropriate HTTP command, and then convince a user to open it. Typically,
this would be done by either hosting the page on a web site that the
attacker controlled or sending it directly to users as an HTML mail.
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:
* A vulnerable version of MDAC must be installed on the server. The most
recent version of MDAC, version 2.7 (which ships as part of Windows XP),
does not contain this vulnerability. However, most previous versions are
vulnerable.
* RDS must be running in Internet Information Services (IIS). In IIS 5.0
and 5.1, RDS is disabled by default (unless the system was upgraded from a
previous version of Windows). Even in cases where RDS does run by default,
it can be disabled as discussed in the IIS Security Checklist. The IIS
Lockdown Tool will also automatically disable RDS when used in its default
configuration.
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.
ADDITIONAL INFORMATION
The information has been provided by
<mailto:0_41279_E51E4D7D-DECD-43AE-9A29-36080E8D4C3C_US@Newsletters.Microsoft.com> Microsoft Product Security.
========================================
This bulletin is sent to members of the SecuriTeam mailing list.
To unsubscribe from the list, send mail with an empty subject line and body to: list-unsubscribe@securiteam.com
In order to subscribe to the mailing list, simply forward this email to: list-subscribe@securiteam.com
====================
====================
DISCLAIMER:
The information in this bulletin is provided "AS IS" without warranty of any kind.
In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.
- Next message: support@securiteam.com: "[UNIX] vBulletin XSS Injection Vulnerability (perpage)"
- Previous message: support@securiteam.com: "[NT] Remotely Exploitable Buffer Overflow in Microsoft MDAC (Technical details)"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
- Alert: Microsoft Security Bulletin - MS02-065
... Buffer Overrun in Microsoft Data Access Components Could Lead to Code Execution ...
Microsoft Data Access Components (MDAC) 2.1 ... The vulnerability does not affect
Windows XP, despite the fact that it uses Internet Explorer 6.0. ... (NT-Bugtraq) - Re: KB911562 installation fails - Error Code 0x8007F0DA
... MDAC 2.8 SP1 first. ... the MDAC version checker now says I am running a Windows
XP SP2 ... Service Pack 1 or higher upgrade immediately to Microsoft Data Access
... (microsoft.public.windowsupdate) - Re: Database Results: No read permissions
... has Microsoft Data Access Components (MDAC) 2.8 - Supported Operating ... Windows
2000, Windows 98, Windows ME, Windows NT, Windows XP ... (microsoft.public.frontpage.programming) - RE: problem installing MSDE 2000 when MS BCM already installed
... What's your windows version, Windows 2000, Windows XP or Windows 2003 ... Have
you upgraded to MDAC 2.8? ... Download it here and upgrade to see ... Microsoft
Data Access Components 2.8 ... (microsoft.public.sqlserver.setup) - Re: windows update kb927779 always reoffers to install even alread
... And even download SP2 and install again same.... ... Then I run System File
Checker tool on a Windows XP SP2-based computer by ... I don't see how you can repair
MDAC without ... (microsoft.public.windowsupdate)