Lucene search

K
securityvulnsSecurityvulnsSECURITYVULNS:DOC:22297
HistoryAug 11, 2009 - 12:00 a.m.

Microsoft Security Bulletin MS09-037 - Critical Vulnerabilities in Microsoft Active Template Library (ATL) Could Allow Remote Code Execution (973908)

2009-08-1100:00:00
vulners.com
21

Microsoft Security Bulletin MS09-037 - Critical
Vulnerabilities in Microsoft Active Template Library (ATL) Could Allow Remote Code Execution (973908)
Published: August 11, 2009

Version: 1.0
General Information
Executive Summary

This security update resolves several privately reported vulnerabilities in Microsoft Active Template Library (ATL). The vulnerabilities could allow remote code execution if a user loaded a specially crafted component or control hosted on a malicious website. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

This security update is rated Critical for all supported editions of Microsoft Windows 2000 Service Pack 4, Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008. For more information on the software affected by this update, see the subsection, Affected and Non-Affected Software, in this section. For more information on the impact of, and workarounds and mitigations for controls and components that may be vulnerable to these issues, please see Microsoft Security Advisory (973882).

The security update addresses the vulnerabilities by modifying the ATL headers so that components and controls built using the headers can safely initialize from a data stream, and by providing updated versions of Windows components and controls built using corrected ATL headers. For more information about the vulnerabilities, see the Frequently Asked Questions (FAQ) subsection for the specific vulnerability entry under the next section, Vulnerability Information.

Recommendation. The majority of customers have automatic updating enabled and will not need to take any action because this security update will be downloaded and installed automatically. Customers who have not enabled automatic updating need to check for updates and install this update manually. For information about specific configuration options in automatic updating, see Microsoft Knowledge Base Article 294871.

For administrators and enterprise installations, or end users who want to install this security update manually, Microsoft recommends that customers apply the update immediately using update management software, or by checking for updates using the Microsoft Update service.

See also the section, Detection and Deployment Tools and Guidance, later in this bulletin.

Known Issues. None
Top of sectionTop of section
Affected and Non-Affected Software

The following software have been tested to determine which versions or editions are affected. Other versions or editions are either past their support life cycle or are not affected. To determine the support life cycle for your software version or edition, visit Microsoft Support Lifecycle.

Affected Software
Operating System Component Maximum Security Impact Aggregate Severity Rating Bulletins Replaced by this Update
Microsoft Windows 2000

Microsoft Windows 2000 Service Pack 4

Microsoft Outlook Express 5.5 Service Pack 2
(KB973354)

Microsoft Outlook Express 6 Service Pack 1
(KB973354)

Remote Code Execution

Critical

MS08-048

Microsoft Windows 2000 Service Pack 4

Windows Media Player 9
(KB973540)

Remote Code Execution

Critical

MS07-047

Microsoft Windows 2000 Service Pack 4

Windows ATL Component
(KB973507)

Remote Code Execution

Critical

None

Microsoft Windows 2000 Service Pack 4

DHTML Editing Component ActiveX Control
(KB973869)

Remote Code Execution

Critical

MS05-013
Windows XP

Windows XP Service Pack 2 and Windows XP Service Pack 3

Microsoft Outlook Express 6
(KB973354)

Remote Code Execution

Critical

None

Windows XP Service Pack 2

Windows Media Player 9, Windows Media Player 10, and Windows Media Player 11
(KB973540)

Remote Code Execution

Critical

MS07-047

Windows XP Service Pack 3

Windows Media Player 9
(KB973540)

Remote Code Execution

Critical

None

Windows XP Service Pack 3

Windows Media Player 10, and Windows Media Player 11
(KB973540)

Remote Code Execution

Critical

MS07-047

Windows XP Service Pack 2 and Windows XP Service Pack 3

Windows ATL Component
(KB973507)

Remote Code Execution

Critical

None

Windows XP Service Pack 2 and Windows XP Service Pack 3

DHTML Editing Component ActiveX Control
(KB973869)

Remote Code Execution

Critical

MS05-013

Windows XP Service Pack 2 and Windows XP Service Pack 3

Microsoft MSWebDVD ActiveX Control
(KB973815)

Remote Code Execution

Critical

None

Windows XP Professional x64 Edition Service Pack 2

Microsoft Outlook Express 6
(KB973354)

Remote Code Execution

Critical

None

Windows XP Professional x64 Edition Service Pack 2

Windows Media Player 10
(KB973540)

Remote Code Execution

Critical

MS07-047

Windows XP Professional x64 Edition Service Pack 2

Windows Media Player 11
(KB973540)

Remote Code Execution

Critical

MS07-047

Windows XP Professional x64 Edition Service Pack 2

Windows ATL Component
(KB973507)

Remote Code Execution

Critical

None

Windows XP Professional x64 Edition Service Pack 2

DHTML Editing Component ActiveX Control
(KB973869)

Remote Code Execution

Critical

None

Windows XP Professional x64 Edition Service Pack 2

Microsoft MSWebDVD ActiveX Control
(KB973815)

Remote Code Execution

Critical

None
Windows Server 2003

Windows Server 2003 Service Pack 2

Microsoft Outlook Express 6
(KB973354)

Remote Code Execution

Critical

None

Windows Server 2003 Service Pack 2

Windows Media Player 10
(KB973540)

Remote Code Execution

Critical

MS07-047

Windows Server 2003 Service Pack 2

Windows ATL Component
(KB973507)

Remote Code Execution

Critical

None

Windows Server 2003 Service Pack 2

DHTML Editing Component ActiveX Control
(KB973869)

Remote Code Execution

Critical

None

Windows Server 2003 Service Pack 2

Microsoft MSWebDVD ActiveX Control
(KB973815)

Remote Code Execution

Critical

None

Windows Server 2003 x64 Edition Service Pack 2

Microsoft Outlook Express 6
(KB973354)

Remote Code Execution

Critical

None

Windows Server 2003 x64 Edition Service Pack 2

Windows Media Player 10
(KB973540)

Remote Code Execution

Critical

MS07-047

Windows Server 2003 x64 Edition Service Pack 2

Windows ATL Component
(KB973507)

Remote Code Execution

Critical

None

Windows Server 2003 x64 Edition Service Pack 2

DHTML Editing Component ActiveX Control
(KB973869)

Remote Code Execution

Critical

None

Windows Server 2003 x64 Edition Service Pack 2

Microsoft MSWebDVD ActiveX Control
(KB973815)

Remote Code Execution

Critical

None

Windows Server 2003 with SP2 for Itanium-based Systems

Microsoft Outlook Express 6
(KB973354)

Remote Code Execution

Critical

None

Windows Server 2003 with SP2 for Itanium-based Systems

Windows ATL Component
(KB973507)

Remote Code Execution

Critical

None

Windows Server 2003 with SP2 for Itanium-based Systems

DHTML Editing Component ActiveX Control
(KB973869)

Remote Code Execution

Critical

None

Windows Server 2003 with SP2 for Itanium-based Systems

Microsoft MSWebDVD ActiveX Control
(KB973815)

Remote Code Execution

Critical

None
Windows Vista

Windows Vista

Windows Media Player 11
(KB973540)

Remote Code Execution

Critical

MS07-047

Windows Vista Service Pack 1, and Windows Vista Service Pack 2

Windows Media Player 11
(KB973540)

Remote Code Execution

Critical

None

Windows Vista, Windows Vista Service Pack 1, and Windows Vista Service Pack 2

Windows ATL Component
(KB973507)

Remote Code Execution

Critical

None

Windows Vista x64 Edition, Windows Vista

Windows Media Player 11
(KB973540)

Remote Code Execution

Critical

MS07-047

Windows Vista x64 Edition Service Pack 1, and Windows Vista x64 Edition Service Pack 2

Windows Media Player 11
(KB973540)

Remote Code Execution

Critical

None

Windows Vista x64 Edition, Windows Vista x64 Edition Service Pack 1, and Windows Vista x64 Edition Service Pack 2

Windows ATL Component
(KB973507)

Remote Code Execution

Critical

None
Windows Server 2008

Windows Server 2008 for 32-bit Systems and Windows Server 2008 for 32-bit Systems Service Pack 2

Windows Media Player 11 **
(KB973540)

Remote Code Execution

Critical

None

Windows Server 2008 for 32-bit Systems and Windows Server 2008 for 32-bit Systems Service Pack 2

Windows ATL Component*
(KB973507)

Remote Code Execution

Critical

None

Windows Server 2008 for x64-based Systems and Windows Server 2008 for x64-based Systems Service Pack 2

Windows Media Player 11 **
(KB973540)

Remote Code Execution

Critical

None

Windows Server 2008 for x64-based Systems and Windows Server 2008 for x64-based Systems Service Pack 2

Windows ATL Component*
(KB973507)

Remote Code Execution

Critical

None

Windows Server 2008 for Itanium-based Systems and Windows Server 2008 for Itanium-based Systems Service Pack 2

Windows ATL Component
(KB973507)

Remote Code Execution

Critical

None

*Windows Server 2008 Server Core installation affected. For supported editions of Windows Server 2008, this update applies, with the same severity rating, whether or not Windows Server 2008 was installed using the Server Core installation option. For more information on this installation option, see Server Core. Note that the Server Core installation option does not apply to certain editions of Windows Server 2008; see Compare Server Core Installation Options.

**Windows Server 2008 Server Core installation not affected. The vulnerability addressed by this update does not affect supported editions of Windows Server 2008 if Windows Server 2008 was installed using the Server Core installation option. For more information on this installation option, see Server Core. Note that the Server Core installation option does not apply to certain editions of Windows Server 2008; see Compare Server Core Installation Options.

Non-Affected Software
Operating System

Windows 7 for 32-bit Systems

Windows 7 for x64-based Systems

Windows Server 2008 R2 for x64-based Systems

Windows Server 2008 R2 for Itanium-based Systems
Top of sectionTop of section

Frequently Asked Questions (FAQ) Related to This Security Update

Where are the file information details?
Refer to the reference tables in the Security Update Deployment section for the location of the file information details.

What are the known issues that customers may experience when installing this security update?
Microsoft Knowledge Base Article 973908 documents the currently known issues that customers may experience when they install this security update. The article also documents recommended solutions for these issues.

Why does this update address several reported security vulnerabilities?
This update contains support for several vulnerabilities because the modifications that are required to address these issues are located in related files. Instead of having to install several updates that are almost the same, customers need to install this update only.

How does this bulletin relate to the vulnerabilities described in Microsoft Security Advisory (973882)?
This bulletin addresses Windows components that are affected by the Active Template Library (ATL) vulnerabilities described in Microsoft Security Advisory (973882).

Is this security update related to MS09-034, released as an out-of-band update on July 28, 2009?
Yes. Microsoft Security Bulletin MS09-034, "Cumulative Security Update for Internet Explorer," includes a mitigation that helps prevent components and controls built using the vulnerable ATL from being exploited in Internet Explorer, as well as addressing multiple unrelated vulnerabilities. The new defense in depth protections offered in MS09-034 include updates to Internet Explorer 5.01, Internet Explorer 6 and Internet Explorer 6 Service Pack 1, Internet Explorer 7, and Internet Explorer 8, that monitor and help prevent the successful exploitation of all known public and private ATL vulnerabilities, including the vulnerabilities that could lead to bypassing ActiveX's Kill Bit Security Feature. These protections are designed to help protect customers from Web-based attacks.

If I have installed the MS09-034 update, do I still need to install this update?
Yes. This security bulletin update addresses vulnerabilities in Windows components. By installing this update, users ensure that all known issues caused by vulnerable ATL headers and libraries are corrected for core Windows components.

If I have installed the MS09-034 update, do I still need to install additional components and controls issued by third-parties that address the vulnerabilities described in Microsoft Security Advisory 973882 and Microsoft Security Bulletin MS09-035?
Yes, you need to install updated controls from third parties when released. The MS09-034 Internet Explorer mitigation does not address the underlying vulnerabilities within certain components and controls developed with the Active Template Library. Microsoft recommends that developers follow the guidance provided in this bulletin to modify and rebuild all components and controls affected by vulnerabilities described in this bulletin.

What is ATL?
The Active Template Library (ATL) is a set of template-based C++ classes that let developers create small, fast Component Object Model (COM) objects. It has special support for key COM features, including stock implementations, dual interfaces, standard COM enumerator interfaces, connection points, tear-off interfaces, and ActiveX controls. For more information, see the following MSDN article.

What is the DHTML Editing Component ActiveX Control?
The DHTML Editing Component ActiveX control provides an HTML editor that developers can use to support dynamic Web site HTML editing in software. For more information about the DHTML Editing Component ActiveX control, see the following MSDN article.

What is the Microsoft MSWebDVD ActiveX Control?
The Microsoft MSWebDVD ActiveX control is used to create script-based DVD applications by exposing the MSWebDVD object to applications. For more information, see the following MSDN article.

What is Outlook Express?
Outlook Express is a feature of the Windows operating system for personal computers. It is used for sending and receiving e-mail.

What is Windows Media Player?
Windows Media Player is a feature of the Windows operating system for personal computers. It is used for playing audio and video.

Are third-party components and controls affected by this issue?
Some third-party components and controls may be affected by this issue if certain conditions were met during the building of the components and controls. Microsoft recommends that developers follow the guidance provided in this bulletin to modify and rebuild all components and controls affected by vulnerabilities described in this bulletin.

I am using an older release of the software discussed in this security bulletin. What should I do?
The affected software listed in this bulletin have been tested to determine which releases are affected. Other releases are past their support life cycle. To determine the support life cycle for your software release, visit Microsoft Support Lifecycle.

It should be a priority for customers who have older releases of the software to migrate to supported releases to prevent potential exposure to vulnerabilities. For more information about the Windows Product Lifecycle, visit Microsoft Support Lifecycle. For more information about the extended security update support period for these software versions or editions, visit Microsoft Product Support Services.

Customers who require custom support for older releases must contact their Microsoft account team representative, their Technical Account Manager, or the appropriate Microsoft partner representative for custom support options. Customers without an Alliance, Premier, or Authorized Contract can contact their local Microsoft sales office. For contact information, visit Microsoft Worldwide Information, select the country, and then click Go to see a list of telephone numbers. When you call, ask to speak with the local Premier Support sales manager. For more information, see the Windows Operating System Product Support Lifecycle FAQ.
Top of sectionTop of section
Vulnerability Information

Severity Ratings and Vulnerability Identifiers

The following severity ratings assume the potential maximum impact of the vulnerability. For information regarding the likelihood, within 30 days of this security bulletin's release, of the exploitability of the vulnerability in relation to its severity rating and security impact, please see the Exploitability Index in the August bulletin summary. For more information, see Microsoft Exploitability Index.

Affected Software
Vulnerability Severity Rating and Maximum Security Impact by Affected Software
Affected Software Microsoft Video ActiveX Control Vulnerability - CVE-2008-0015 ATL Header Memcopy Vulnerability - CVE-2008-0020 ATL Uninitialized Object Vulnerability - CVE-2009-0901 ATL COM Initialization Vulnerability - CVE-2009-2493 ATL Object Type Mismatch Vulnerability - CVE-2009-2494 Aggregate Severity Rating

Microsoft Windows 2000 Service Pack 4

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

Windows XP Media Center Edition 2005

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

Windows XP Service Pack 2 and Service Pack 3

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

Windows XP Professional x64 Edition Service Pack 2

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

Windows Server 2003 Service Pack 2

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

Windows Server 2003 x64 Edition Service Pack 2

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

Windows Server 2003 with SP2 for Itanium-based Systems

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

Windows Vista, Windows Vista Service Pack 1, and Windows Vista Service Pack 2

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

Windows Vista x64 Edition, Windows Vista x64 Edition Service Pack 1, and Windows Vista x64 Edition Service Pack 2

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

Windows Server 2008 for 32-bit Systems and Windows Server 2008 for 32-bit Systems Service Pack 2* and **

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

Windows Server 2008 for x64-based Systems and Windows Server 2008 for x64-based Systems Service Pack 2* and **

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

Windows Server 2008 for Itanium-based Systems and Windows Server 2008 for Itanium-based Systems Service Pack 2

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical
Remote Code Execution

Critical

*Windows Server 2008 Server Core installation affected. For supported editions of Windows Server 2008, this update applies, with the same severity rating, whether or not Windows Server 2008 was installed using the Server Core installation option. For more information on this installation option, see Server Core. Note that the Server Core installation option does not apply to certain editions of Windows Server 2008; see Compare Server Core Installation Options.

**Windows Server 2008 Server Core installation not affected. The vulnerability addressed by this update does not affect supported editions of Windows Server 2008 if Windows Server 2008 was installed using the Server Core installation option. For more information on this installation option, see Server Core. Note that the Server Core installation option does not apply to certain editions of Windows Server 2008; see Compare Server Core Installation Options.
Top of sectionTop of section

Microsoft Video ActiveX Control Vulnerability - CVE-2008-0015

A remote code execution vulnerability exists in the Microsoft Active Template Library (ATL) due to the function CComVariant::ReadFromStream used in the ATL header. This function does not properly restrict untrusted data read from a stream. This issue leads to reading data directly onto the stack instead of reading it into the area of memory allocated for an array, which could allow a remote, unauthenticated user to perform remote code execution on an affected system. An attacker could exploit the vulnerability by constructing a specially crafted Web page. When a user views the Web page, the vulnerability could allow remote code execution.

To view this vulnerability as a standard entry in the Common Vulnerabilities and Exposures list, see CVE-2008-0015.

Mitigating Factors for Microsoft Video ActiveX Control Vulnerability - CVE-2008-0015

Mitigation refers to a setting, common configuration, or general best-practice, existing in a default state, that could reduce the severity of exploitation of a vulnerability. The following mitigating factors may be helpful in your situation:

Mitigating factors and Workarounds for potentially vulnerable components and controls are located in Microsoft Security Advisory (973882).
Top of sectionTop of section

Workarounds for Microsoft Video ActiveX Control Vulnerability - CVE-2008-0015

Workaround refers to a setting or configuration change that does not correct the underlying vulnerability but would help block known attack vectors before you apply the update. Microsoft has tested the following workarounds and states in the discussion whether a workaround reduces functionality:

Mitigating factors and Workarounds for potentially vulnerable components and controls are located in Microsoft Security Advisory (973882).
Top of sectionTop of section

FAQ for Microsoft Video ActiveX Control Vulnerability - CVE-2008-0015

What is the scope of the vulnerability?
This is a remote code execution vulnerability. The vulnerability could allow remote code execution if the user visits a specially crafted Web page with Internet Explorer, instantiating a vulnerable component or control. An attacker who successfully exploited this vulnerability could gain the same user rights as the logged-on user.

If a user is logged on with administrative user rights, an attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

What causes the vulnerability?
The function CComVariant::ReadFromStream used in the ATL header does not properly restrict untrusted data read from a stream. This issue could lead to reading data directly onto the stack instead of reading it into the area of memory allocated for an array.

Are third-party ActiveX controls affected by this issue?
Although this vulnerability is in Microsoft ATL, it is not in the ATL version shipped with Visual Studio. The affected ATL headers reside in a private header file that shipped in Windows XP and Windows Server 2003. Most third-party developers use the header file that came with Visual Studio. These applications are not exposed to this vulnerability.

What might an attacker use the vulnerability to do?
If a user has a vulnerable control on their system and an attacker bypasses the mitigations described in Microsoft Security Advisory (973882), then an attacker could take complete control of the affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

How could an attacker exploit the vulnerability?
An attacker could host a specially crafted Web site that is designed to exploit this vulnerability through Internet Explorer by attempting to exploit a vulnerable control, and then convince a user to view the Web site. This can also include compromised Web sites and Web sites that accept or host user-provided content or advertisements. These Web sites could contain specially crafted content that could exploit this vulnerability. In all cases, however, an attacker would have to discover a vulnerable control, and force users to visit these Web sites. To do this, an attacker would have to convince users to visit the Web site, typically by getting them to click a link in an e-mail message or in an Instant Messenger request that takes users to the attacker's Web site. It could also be possible to display specially crafted Web content by using banner advertisements or by using other methods to deliver Web content to affected systems.

What systems are primarily at risk from the vulnerability?
Workstations and terminal servers are primarily at risk. Servers could be at more risk if users who should not have sufficient administrative permissions are given the ability to log on to servers and to run programs. However, best practices strongly discourage allowing this.

What does the update do?
The update addresses the vulnerability by correcting the affecting Window components and controls to restrict data read from untrusted streams to ensure it is not copied directly to the memory stack.

When this security bulletin was issued, had this vulnerability been publicly disclosed?
No. Microsoft received information about this vulnerability through responsible disclosure. Microsoft had not received any information to indicate that this vulnerability had been publicly disclosed when this security bulletin was originally issued.

When this security bulletin was issued, had Microsoft received any reports that this vulnerability was being exploited?
Yes. When the security bulletin was released, Microsoft had received information that this vulnerability was being exploited.
Top of sectionTop of section
Top of sectionTop of section

ATL Header Memcopy Vulnerability - CVE-2008-0020

A remote code execution vulnerability exists in the Microsoft Active Template Library (ATL) due to an error in the Load method of the IPersistStreamInit interface. The Load method could allow calls to memcopy with untrusted data, which could allow a remote, unauthenticated user to perform remote code execution on an affected system. An attacker could exploit the vulnerability by constructing a specially crafted Web page. When a user views the Web page, the vulnerability could allow remote code execution.

To view this vulnerability as a standard entry in the Common Vulnerabilities and Exposures list, see CVE-2008-0020.

Mitigating Factors for ATL Header Memcopy Vulnerability - CVE-2008-0020

Mitigation refers to a setting, common configuration, or general best-practice, existing in a default state, that could reduce the severity of exploitation of a vulnerability. The following mitigating factors may be helpful in your situation:

Mitigating factors and Workarounds for potentially vulnerable components and controls are located in Microsoft Security Advisory (973882).
Top of sectionTop of section

Workarounds for ATL Header Memcopy Vulnerability - CVE-2008-0020

Workaround refers to a setting or configuration change that does not correct the underlying vulnerability but would help block known attack vectors before you apply the update. Microsoft has tested the following workarounds and states in the discussion whether a workaround reduces functionality:

Mitigating factors and Workarounds for potentially vulnerable components and controls are located in Microsoft Security Advisory (973882).
Top of sectionTop of section

FAQ for ATL Header Memcopy Vulnerability - CVE-2008-0020

What is the scope of the vulnerability?
This is a remote code execution vulnerability. The vulnerability could allow remote code execution if the user visits a specially crafted Web page with Internet Explorer, instantiating a vulnerable component or control. An attacker who successfully exploited this vulnerability could gain the same user rights as the logged-on user.

If a user is logged on with administrative user rights, an attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

What causes the vulnerability?
The vulnerability is caused by an error in the Load method of the IPersistStreamInit interface. The Load method could allow calls to memcopy with untrusted data.

Are third-party ActiveX controls affected by this issue?
Although this vulnerability is in Microsoft ATL, it is not in the ATL version shipped with Visual Studio. The affected ATL headers reside in a private header file that shipped in Windows XP and Windows Server 2003. Most third-party developers use the header file that came with Visual Studio. These applications are not exposed to this bug.

What might an attacker use the vulnerability to do?
If a user has a vulnerable control on their system and an attacker bypasses the mitigations described in Microsoft Security Advisory (973882), then an attacker could take complete control of the affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

How could an attacker exploit the vulnerability?
An attacker could host a specially crafted Web site that is designed to exploit this vulnerability through Internet Explorer by attempting to exploit a vulnerable control, and then convince a user to view the Web site. This can also include compromised Web sites and Web sites that accept or host user-provided content or advertisements. These Web sites could contain specially crafted content that could exploit this vulnerability. In all cases, however, an attacker would have to discover a vulnerable control, and force users to visit these Web sites. To do this, an attacker would have to convince users to visit the Web site, typically by getting them to click a link in an e-mail message or in an Instant Messenger request that takes users to the attacker's Web site. It could also be possible to display specially crafted Web content by using banner advertisements or by using other methods to deliver Web content to affected systems.

What systems are primarily at risk from the vulnerability?
Workstations and terminal servers are primarily at risk. Servers could be at more risk if users who should not have sufficient administrative permissions are given the ability to log on to servers and to run programs. However, best practices strongly discourage allowing this.

What does the update do?
The update addresses the issue by correcting Windows components and control to restrict the Load method of the IPersistStreamInit interface to only allow calls to memcopy with trusted data.

When this security bulletin was issued, had this vulnerability been publicly disclosed?
No. Microsoft received information about this vulnerability through responsible disclosure. Microsoft had not received any information to indicate that this vulnerability had been publicly disclosed when this security bulletin was originally issued.

When this security bulletin was issued, had Microsoft received any reports that this vulnerability was being exploited?
No. Microsoft had not received any information to indicate that this vulnerability had been publicly used to attack customers and had not seen any examples of proof of concept code published when this security bulletin was originally issued.
Top of sectionTop of section
Top of sectionTop of section

ATL Uninitialized Object Vulnerability - CVE-2009-0901

A remote code execution vulnerability exists in the Microsoft Active Template Library (ATL) due to a bug in the ATL headers that could allow an attacker to force VariantClear to be called on a VARIANT that has not been correctly initialized. Because of this bug, the attacker can control what happens when VariantClear is called during handling of an error by supplying a corrupt stream. This vulnerability only directly affects systems with components and controls installed that were built using Visual Studio ATL. This vulnerability could allow a remote, unauthenticated user to perform remote code execution on an affected system. An attacker could exploit the vulnerability by constructing a specially crafted Web page. When a user views the Web page, the vulnerability could allow remote code execution.

To view this vulnerability as a standard entry in the Common Vulnerabilities and Exposures list, see CVE-2009-0901.

Mitigating Factors for ATL Uninitialized Object Vulnerability - CVE-2009-0901

Mitigation refers to a setting, common configuration, or general best-practice, existing in a default state, that could reduce the severity of exploitation of a vulnerability. The following mitigating factors may be helpful in your situation:

Mitigating factors and Workarounds for potentially vulnerable components and controls are located in Microsoft Security Advisory (973882).
Top of sectionTop of section

Workarounds for ATL Uninitialized Object Vulnerability - CVE-2009-0901

Workaround refers to a setting or configuration change that does not correct the underlying vulnerability but would help block known attack vectors before you apply the update. Microsoft has tested the following workarounds and states in the discussion whether a workaround reduces functionality:

Mitigating factors and Workarounds for potentially vulnerable components and controls are located in Microsoft Security Advisory (973882).
Top of sectionTop of section

FAQ for ATL Uninitialized Object Vulnerability - CVE-2009-0901

What is the scope of the vulnerability?
This is a remote code execution vulnerability. The vulnerability could allow remote code execution if the user visits a specially crafted Web page with Internet Explorer that instantiates a vulnerable component or control. An attacker who successfully exploited this vulnerability could gain the same user rights as the logged-on user.

If a user is logged on with administrative user rights, an attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

What causes the vulnerability?
The vulnerability results from an issue in the ATL headers that could allow an attacker to call VariantClear() on a variant that has not been correctly initialized. For developers who created a component or control using ATL in this manner, the resulting component or control could allow remote code execution in the context of the logged on user.

What might an attacker use the vulnerability to do?
If a user has a vulnerable control on their system and an attacker bypasses the mitigations described in Microsoft Security Advisory (973882), then an attacker could take complete control of the affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

How could an attacker exploit the vulnerability?
An attacker could host a specially crafted Web site that is designed to exploit this vulnerability through Internet Explorer by attempting to exploit a vulnerable control, and then convince a user to view the Web site. This can also include compromised Web sites and Web sites that accept or host user-provided content or advertisements. These Web sites could contain specially crafted content that could exploit this vulnerability. In all cases, however, an attacker would have to discover a vulnerable control, and force users to visit these Web sites. To do this, an attacker would have to convince users to visit the Web site, typically by getting them to click a link in an e-mail message or in an Instant Messenger request that takes users to the attacker's Web site. It could also be possible to display specially crafted Web content by using banner advertisements or by using other methods to deliver Web content to affected systems.

Are third-party ActiveX controls affected by this issue?
Some third-party components and controls may be affected by this issue if certain conditions were met during the building of the components and controls. Microsoft recommends that developers follow the guidance provided in theMS09-035 Visual Studio bulletin to modify and rebuild all components and controls affected by vulnerabilities described in this bulletin.

I am a third-party application developer and I use ATL in my components and controls. Are my components and controls vulnerable, and if so, how do I update them?
For instructions on determining whether your components and controls are vulnerable and how to update them, see the following MSDN Article.

What systems are primarily at risk from the vulnerability?
Workstations and terminal servers are primarily at risk. Servers could be at more risk if users who should not have sufficient administrative permissions are given the ability to log on to servers and to run programs. However, best practices strongly discourage allowing this.

What does the update do?
The update addresses the issue by updating Windows components and controls to ensure VariantClear() can only be called on initialized variants.

When this security bulletin was issued, had this vulnerability been publicly disclosed?
No. Microsoft received information about this vulnerability through responsible disclosure. Microsoft had not received any information to indicate that this vulnerability had been publicly disclosed when this security bulletin was originally issued.

When this security bulletin was issued, had Microsoft received any reports that this vulnerability was being exploited?
No. Microsoft had not received any information to indicate that this vulnerability had been publicly used to attack customers and had not seen any examples of proof of concept code published when this security bulletin was originally issued.
Top of sectionTop of section
Top of sectionTop of section

ATL COM Initialization Vulnerability - CVE-2009-2493

A remote code execution vulnerability exists in the Microsoft Active Template Library (ATL) due to bugs in the ATL headers that handle instantiation of an object from data streams. This vulnerability only directly affects systems with components and controls installed that were built using Visual Studio ATL. For components and controls built using ATL, unsafe usage of OleLoadFromStream could allow the instantiation of arbitrary objects which can bypass related security policy, such as kill bits within Internet Explorer. This vulnerability could allow a remote, unauthenticated user to perform remote code execution on an affected system. An attacker could exploit the vulnerability by constructing a specially crafted Web page. When a user views the Web page, the vulnerability could allow remote code execution.

To view this vulnerability as a standard entry in the Common Vulnerabilities and Exposures list, see CVE-2009-2493.

Mitigating Factors for ATL COM Initialization Vulnerability - CVE-2009-2493

Mitigation refers to a setting, common configuration, or general best-practice, existing in a default state, that could reduce the severity of exploitation of a vulnerability. The following mitigating factors may be helpful in your situation:

Mitigating factors and Workarounds for potentially vulnerable components and controls are located in Microsoft Security Advisory (973882).
Top of sectionTop of section

Workarounds for ATL COM Initialization Vulnerability - CVE-2009-2493

Workaround refers to a setting or configuration change that does not correct the underlying vulnerability but would help block known attack vectors before you apply the update. Microsoft has tested the following workarounds and states in the discussion whether a workaround reduces functionality:

Mitigating factors and Workarounds for potentially vulnerable components and controls are located in Microsoft Security Advisory (973882).
Top of sectionTop of section

FAQ for ATL COM Initialization Vulnerability - CVE-2009-2493

What is the scope of the vulnerability?
This is a remote code execution vulnerability. The vulnerability could allow remote code execution if the user visits a specially crafted Web page with Internet Explorer, instantiating a vulnerable component or control. An attacker who successfully exploited this vulnerability could gain the same user rights as the logged-on user.

If a user is logged on with administrative user rights, an attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

What causes the vulnerability?
The vulnerability results from errors in the ATL headers that handle instantiation of an object from data streams. For components and controls built using ATL, unsafe usage of OleLoadFromStream could allow the instantiation of arbitrary objects which can bypass certain related security policies.

What might an attacker use the vulnerability to do?
If a user has a vulnerable control on their system, and an attacker bypasses the mitigations described in Microsoft Security Advisory (973882), then if the user is logged on with administrative user rights an attacker could take complete control of the affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

How could an attacker exploit the vulnerability?
An attacker could host a specially crafted Web site that is designed to exploit this vulnerability through Internet Explorer by attempting to exploit a vulnerable control, and then convince a user to view the Web site. This can also include compromised Web sites and Web sites that accept or host user-provided content or advertisements. These Web sites could contain specially crafted content that could exploit this vulnerability. In all cases, however, an attacker would have to discover a vulnerable control, and force users to visit these Web sites. To do this, an attacker would have to convince users to visit the Web site, typically by getting them to click a link in an e-mail message or in an Instant Messenger request that takes users to the attacker's Web site. It could also be possible to display specially crafted Web content by using banner advertisements or by using other methods to deliver Web content to affected systems.

Are third-party ActiveX controls affected by this issue?
Some third-party components and controls may be affected by this issue if certain conditions were met during the building of the components and controls. Microsoft recommends that developers follow the guidance provided in theMS09-035 Visual Studio bulletin to modify and rebuild all components and controls affected by vulnerabilities described in this bulletin.

I am a third-party application developer and I use ATL in my components and controls. Are my components and controls vulnerable, and if so, how do I update them?
For instructions on determining whether your components and controls are vulnerable and how to update them, see the following MSDN Article.

What systems are primarily at risk from the vulnerability?
Workstations and terminal servers are primarily at risk. Servers could be at more risk if users who should not have sufficient administrative permissions are given the ability to log on to servers and to run programs. However, best practices strongly discourage allowing this.

What does the update do?
The update addresses the vulnerability by correcting the manner in which ATL handles the instantiation of objects from data stream and providing updated versions of Windows components and controls built using corrected ATL headers.

When this security bulletin was issued, had this vulnerability been publicly disclosed?
No. Microsoft received information about this vulnerability through responsible disclosure. Microsoft had not received any information to indicate that this vulnerability had been publicly disclosed when this security bulletin was originally issued.

When this security bulletin was issued, had Microsoft received any reports that this vulnerability was being exploited?
No. Microsoft had not received any information to indicate that this vulnerability had been publicly used to attack customers and had not seen any examples of proof of concept code published when this security bulletin was originally issued.
Top of sectionTop of section
Top of sectionTop of section

ATL Object Type Mismatch Vulnerability - CVE-2009-2494

A remote code execution vulnerability exists in the Microsoft Active Template Library (ATL) due to a bug in the ATL header that could allow reading a variant from a stream and leaving the variant type read with an invalid variant. When deleting the variant, it is possible to free unintended areas in memory that could be controlled by an attacker.

To view this vulnerability as a standard entry in the Common Vulnerabilities and Exposures list, see CVE-2009-2494.

Mitigating Factors for ATL Object Type Mismatch Vulnerability - CVE-2009-2494

Mitigation refers to a setting, common configuration, or general best-practice, existing in a default state, that could reduce the severity of exploitation of a vulnerability. The following mitigating factors may be helpful in your situation:

Mitigating factors and Workarounds for potentially vulnerable components and controls are located in Microsoft Security Advisory (973882).
Top of sectionTop of section

Workarounds for ATL Object Type Mismatch Vulnerability - CVE-2009-2494

Workaround refers to a setting or configuration change that does not correct the underlying vulnerability but would help block known attack vectors before you apply the update. Microsoft has tested the following workarounds and states in the discussion whether a workaround reduces functionality:

Mitigating factors and Workarounds for potentially vulnerable components and controls are located in Microsoft Security Advisory (973882).
Top of sectionTop of section

FAQ for ATL Object Type Mismatch Vulnerability - CVE-2009-2494

What is the scope of the vulnerability?
This is a remote code execution vulnerability. The vulnerability could allow remote code execution if the user visits a specially crafted Web page with Internet Explorer, instantiating a vulnerable component or control. An attacker who successfully exploited this vulnerability could gain the same user rights as the logged-on user.

If a user is logged on with administrative user rights, an attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

What causes the vulnerability?
The vulnerability is caused by a bug in the ATL header that could allow reading a variant from a stream and leaving the variant type read with an invalid variant. When deleting the variant, it would be possible to free unintended areas in memory that could be controlled by an attacker, resulting in inconsistent memory contents and execution of malicious code.

Are third-party ActiveX controls affected by this issue?
Although this vulnerability is in Microsoft ATL, it is not in the ATL version shipped with Visual Studio. The affected ATL headers reside in a private header file that shipped in Windows XP and Windows Server 2003. Most third-party developers use the header file that came with Visual Studio. These applications are not exposed to this issue.

What might an attacker use the vulnerability to do?
If a user has a vulnerable control on their system, and an attacker bypasses the mitigations described in Microsoft Security Advisory (973882), then if the user is logged on with administrative user rights an attacker could take complete control of the affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

How could an attacker exploit the vulnerability?
An attacker could host a specially crafted Web site that is designed to exploit this vulnerability through Internet Explorer by attempting to exploit a vulnerable control, and then convince a user to view the Web site. This can also include compromised Web sites and Web sites that accept or host user-provided content or advertisements. These Web sites could contain specially crafted content that could exploit this vulnerability. In all cases, however, an attacker would have to discover a vulnerable control, and force users to visit these Web sites. To do this, an attacker would have to convince users to visit the Web site, typically by getting them to click a link in an e-mail message or in an Instant Messenger request that takes users to the attacker's Web site. It could also be possible to display specially crafted Web content by using banner advertisements or by using other methods to deliver Web content to affected systems.

What systems are primarily at risk from the vulnerability?
Workstations and terminal servers are primarily at risk. Servers could be at more risk if users who should not have sufficient administrative permissions are given the ability to log on to servers and to run programs. However, best practices strongly discourage allowing this.

What does the update do?
The update addresses the issue by properly validating variants read from a stream and providing updated versions of Windows components and controls built using corrected ATL headers.

When this security bulletin was issued, had this vulnerability been publicly disclosed?
No. Microsoft received information about this vulnerability through responsible disclosure. Microsoft had not received any information to indicate that this vulnerability had been publicly disclosed when this security bulletin was originally issued.

When this security bulletin was issued, had Microsoft received any reports that this vulnerability was being exploited?
No. Microsoft had not received any information to indicate that this vulnerability had been publicly used to attack customers and had not seen any examples of proof of concept code published when this security bulletin was originally issued.

Other Information
Acknowledgments

Microsoft thanks the following for working with us to help protect customers:

Ryan Smith and Alex Wheeler of IBM ISS X-Force for initially reporting the Microsoft Video ActiveX Control Remote Code Execution Vulnerability (CVE-2008-0015)

Robert Freeman of IBM ISS X-Force for reporting the ATL Header Memcopy Vulnerability (CVE-2008-0020)

David Dewey of IBM ISS X-Force for reporting the ATL Uninitialized Object Vulnerability (CVE-2009-0901)

Ryan Smith of VeriSign iDefense Labs for reporting the ATL COM Initialization Vulnerability (CVE-2009-2493)

Ryan Smith of VeriSign iDefense Labs for reporting the ATL Object Type Mismatch Vulnerability (CVE-2009-2494)

Microsoft Active Protections Program (MAPP)

To improve security protections for customers, Microsoft provides vulnerability information to major security software providers in advance of each monthly security update release. Security software providers can then use this vulnerability information to provide updated protections to customers via their security software or devices, such as antivirus, network-based intrusion detection systems, or host-based intrusion prevention systems. To determine whether active protections are available from security software providers, please visit the active protections Web sites provided by program partners, listed in Microsoft Active Protections Program (MAPP) Partners.

Support

Customers in the U.S. and Canada can receive technical support from Security Support or 1-866-PCSAFETY. There is no charge for support calls that are associated with security updates. For more information about available support options, see Microsoft Help and Support.

International customers can receive support from their local Microsoft subsidiaries. There is no charge for support that is associated with security updates. For more information about how to contact Microsoft for support issues, visit the International Support Web site.

Disclaimer

The information provided in the Microsoft Knowledge Base is provided "as is" without warranty of any kind. Microsoft disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. In no event shall Microsoft Corporation or its suppliers be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if Microsoft Corporation or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply.
Top of sectionTop of section
Revisions

V1.0 (August 11, 2009): Bulletin published.