Microsoft Security Bulletin MS09-035 - Moderate

Vulnerabilities in Visual Studio Active Template Library Could Allow Remote Code Execution (969706)

Published: | Updated:

Version: 3.0

General Information

Executive Summary

This security update addresses several privately reported vulnerabilities in the public versions of the Microsoft Active Template Library (ATL) included with Visual Studio. This security update is specifically intended for developers of components and controls. Developers who build and redistribute components and controls using ATL should install the update provided in this bulletin and follow the guidance provided to create, and distribute to their customers, components and controls that are not vulnerable to the vulnerabilities described in this security bulletin.

This security bulletin discusses vulnerabilities that could allow remote code execution if a user loaded a component or control built with the vulnerable versions of ATL.

While most Microsoft Security Bulletins discuss the risk of a vulnerability for a specific product, this security bulletin discusses the vulnerabilities that may be present in products built using the ATL. Therefore, this security update is rated Moderate for all supported editions of Microsoft Visual Studio .NET 2003, Microsoft Visual Studio 2005, Microsoft Visual Studio 2008, Microsoft Visual C++ 2005 Redistributable Package, and Microsoft Visual C++ 2008 Redistributable Package.

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).

For more information, see the subsection, Affected and Non-Affected Software, in this section.

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. 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. Developers who have built components and controls using ATL should download this update and recompile their components and controls following the guidance provided in the following MSDN article.

The majority of Visual Studio customers who have automatic updating enabled will receive this update automatically and receive the updated ATL. However, as noted earlier, additional steps will be needed to update potentially vulnerable controls and components. 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. Microsoft Knowledge Base Article 969706 documents the currently known issues that customers may experience when installing this security update. The article also documents recommended solutions for these issues.

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

SoftwareMaximum Security ImpactAggregate Severity RatingBulletins Replaced by this Update
Microsoft Visual Studio .NET 2003 Service Pack 1
(KB971089)
Remote Code ExecutionModerateMS07-012
Microsoft Visual Studio 2005 Service Pack 1
(KB971090)
Remote Code ExecutionModerateNone
Microsoft Visual Studio 2005 Service Pack 1*
(KB973673)
Remote Code ExecutionModerateNone
Microsoft Visual Studio 2005 Service Pack 1 64-bit Hosted Visual C++ Tools
(KB973830)
Remote Code ExecutionModerateNone
Windows Embedded CE 6.0**
(KB974616)
Remote Code ExecutionModerateNone
Microsoft Visual Studio 2008
(KB971091)
Remote Code ExecutionModerateNone
Microsoft Visual Studio 2008*
(KB973674)
Remote Code ExecutionModerateNone
Microsoft Visual Studio 2008 Service Pack 1
(KB971092)
Remote Code ExecutionModerateNone
Microsoft Visual Studio 2008 Service Pack 1*
(KB973675)
Remote Code ExecutionModerateNone
Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package
(KB973544)
Remote Code ExecutionModerateNone
Microsoft Visual C++ 2008 Redistributable Package
(KB973551)
Remote Code ExecutionModerateNone
Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package
(KB973552)
Remote Code ExecutionModerateNone

*For mobile applications using ATL for Smart Devices

**Installs the Windows Embedded CE 6.0 Monthly Update (December 2009). This update package is available from the Microsoft Download Center only.

Frequently Asked Questions (FAQ) Related to This Security Update

Vulnerability Information

Severity Ratings and Vulnerability Identifiers

ATL Uninitialized Object Vulnerability - CVE-2009-0901

ATL COM Initialization Vulnerability - CVE-2009-2493

ATL Null String Vulnerability - CVE-2009-2495

Update Information

Detection and Deployment Tools and Guidance

Security Update Deployment

Other Information

Acknowledgments

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

  • 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 Null String Vulnerability (CVE-2009-2495)

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.

Revisions

  • V1.0 (July 28, 2009): Bulletin published.
  • V1.1 (August 4, 2009): Added new entries to the section, Frequently Asked Questions (FAQ) Related to This Security Update, to communicate that the Known issues with this security update section in the associated Microsoft Knowledge Base Article 969706 has been updated, and that the update detection logic for KB973923 and KB973924 has been revised to correct a package re-offering issue; and to clarify the difference between the Visual C++ Redistributable packages and the other Visual Studio updates.
  • V2.0 (August 11, 2009): Bulletin rereleased to offer new updates for Microsoft Visual Studio 2005 Service Pack 1 (KB973673), Microsoft Visual Studio 2008 (KB973674), and Microsoft Visual Studio 2008 Service Pack 1 (KB973675), for developers who use Visual Studio to create components and controls for mobile applications using ATL for Smart Devices.
  • V2.1 (August 12, 2009): Updated the Affected Software table to list MS07-012 as replaced by the update for Microsoft Visual Studio .NET 2003 Service Pack 1; added a new entry to the section, Frequently Asked Questions (FAQ) Related to This Security Update, to clarify why Microsoft Download Center update KB numbers for Visual C++ Redistributable packages differ from SMS, SCCM, WSUS and MU update KB numbers; corrected restart requirements throughout the bulletin; added Product Code Verification entries to the update deployment reference tables for Microsoft Visual Studio 2005 Service Pack 1, and Microsoft Visual Studio 2008 and Microsoft Visual Studio 2008 Service Pack 1; and performed miscellaneous edits.
  • V2.2 (August 19, 2009): Added a link to Microsoft Knowledge Base Article 974653 to provide instructions for using product codes to verify the installation of the updates for Microsoft Visual Studio 2005 Service Pack 1 and Microsoft Visual Studio 2008 and Microsoft Visual Studio 2008 Service Pack 1.
  • V2.3 (September 8, 2009): Added a new entry to the section, Frequently Asked Questions (FAQ) Related to This Security Update, to communicate that Microsoft Knowledge Base Article 969706 has been revised to change the known issue KB974223 to KB974479, in order to offer a non-security update to fix the issue.
  • V3.0 (January 12, 2010): Rereleased this bulletin to add Windows Embedded CE 6.0 to affected software. The new update for Windows Embedded CE 6.0 (KB974616) is available from the Microsoft Download Center only. Customers using the Windows Embedded CE 6.0 platform should consider applying the update. No other update packages are affected by this rerelease.