Security Bulletin

Microsoft Security Bulletin MS09-035 - Moderate

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

Published: July 28, 2009 | Updated: January 12, 2010

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

Software Maximum Security Impact Aggregate Severity Rating Bulletins Replaced by this Update
Microsoft Visual Studio .NET 2003 Service Pack 1\ (KB971089) Remote Code Execution Moderate MS07-012
Microsoft Visual Studio 2005 Service Pack 1\ (KB971090) Remote Code Execution Moderate None
Microsoft Visual Studio 2005 Service Pack 1*\ (KB973673) Remote Code Execution Moderate None
Microsoft Visual Studio 2005 Service Pack 1 64-bit Hosted Visual C++ Tools\ (KB973830) Remote Code Execution Moderate None
Windows Embedded CE 6.0**\ (KB974616) Remote Code Execution Moderate None
Microsoft Visual Studio 2008\ (KB971091) Remote Code Execution Moderate None
Microsoft Visual Studio 2008*\ (KB973674) Remote Code Execution Moderate None
Microsoft Visual Studio 2008 Service Pack 1\ (KB971092) Remote Code Execution Moderate None
Microsoft Visual Studio 2008 Service Pack 1*\ (KB973675) Remote Code Execution Moderate None
Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package\ (KB973544) Remote Code Execution Moderate None
Microsoft Visual C++ 2008 Redistributable Package\ (KB973551) Remote Code Execution Moderate None
Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package\ (KB973552) Remote Code Execution Moderate None

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

Why was this bulletin rereleased on January 12, 2010?
Microsoft rereleased this bulletin to add Windows Embedded CE 6.0 to affected software. The update for Windows Embedded CE 6.0 (KB974616) is a cumulative update that is available from the Microsoft Download Center only. Customers using the Windows Embedded CE 6.0 platform should consider applying the cumulative update. No other update packages are affected by this rerelease.

Why was this bulletin revised on September 8, 2009? 
This bulletin was revised to communicate that the Known issues with this security update section in the associated Microsoft Knowledge Base Article 969706 been revised to change the number for known issue KB974223 to KB974479, in order to offer a non-security update to fix the issue. Microsoft Visual Studio 2008 Service Pack 1 users who have not installed the security update described in this bulletin will automatically receive both the security update and the non-security update through Microsoft Update. Microsoft Visual Studio 2008 Service Pack 1 users who have already installed the security update will automatically be offered the non-security update through Windows Update. Microsoft Visual Studio 2008 Service Pack 1 users who have already installed the security update do not need to reinstall the security update, and need only install the non-security update if they are experiencing the issues described in KB974479.

Why was this bulletin rereleased on August 11, 2009?
Microsoft rereleased this bulletin to offer new updates for the following platforms:

  • Microsoft Visual Studio 2005 Service Pack 1 (KB973673)
  • Microsoft Visual Studio 2008 (KB973674)
  • Microsoft Visual Studio 2008 Service Pack 1 (KB973675)

The new security updates are for developers who use Visual Studio to create components and controls for mobile applications using ATL for Smart Devices. All Visual Studio developers should install these new updates so that they can use Visual Studio to create components and controls that are not vulnerable to the reported issues.

For more information on this known issue, see Microsoft Knowledge Base Article 969706.

Why was this bulletin revised on August 4, 2009? 
This bulletin was revised to communicate that the Known issues with this security update section in the associated Microsoft Knowledge Base Article 969706 been revised, and that the update detection logic for KB973923 and KB973924 has been revised to correct a package re-offering issue. The original detection logic determined whether the update needed to be installed by checking to confirm that the update was not already installed. The Visual C++ Redistributable packages (KB973544, KB973551, KB973552), available from the Microsoft Download Center, are a full superset of the corresponding ATL update packages (KB973923, KB973924), available from Microsoft Update only. Customers who have installed the updated version of the Visual C++ Redistributable package do not need to install the corresponding ATL update packages. The detection changes account for this and do not re-offer the ATL Update packages when the corresponding fixed version of the Visual C++ Redistributable update is already installed. A new entry was also added to this Frequently Asked Questions (FAQ) Related to This Security Update section to clarify the difference between the Visual C++ Redistributable packages and the other Visual Studio updates. Enterprises that do not use Microsoft Update for deployment of updates that need to deploy the updates offered by this bulletin by some other means may download and deploy the full Visual C++ Redistributable packages since these are a full superset of the corresponding ATL update packages.

What is the difference between the Visual C++ Redistributable packages and the other Visual Studio updates? 
The Visual C++ Redistributable packages are full versions of this product that can be redistributed by anyone with their applications. Customers who need to ship the Visual C++ Redistributable should pick up these packages and bundle them or chain them into their setups. The other Visual Studio updates are available for customers who have previously installed an older version of the Visual C++ Redistributable product or have installed the Visual Studio product. These update packages are offered to customers through Microsoft Update only and will be applicable only if an earlier version of the Visual C++ Redistributable or Visual Studio is present.

Why do the Microsoft Download Center update KB numbers for Visual C++ Redistributable packages differ from the SMS, SCCM, WSUS and MU update KB numbers? 
The full versions of the fixed Visual C++ 2005 and 2008 redistributable packages (KB973544, KB973551, and KB973552) are listed on the Microsoft Download Center only as these are full new versions of the products. The updates listed on SMS, SCCM, WSUS, and MU (KB973923, KB9739234) are updates only for customers who have previously installed vulnerable versions of the Visual C++ redistributable packages. These updates are not the versions on the download center. Microsoft does not recommend customers redistribute any version other than the full versions that can be downloaded from the Microsoft Download Center (KB973544, KB973551, and KB973552).

Why was this security update released out of band? 
This security update is being released out of band to address issues disclosed in Microsoft Security Advisory (973882), "Vulnerabilities in Microsoft Active Template Library (ATL) Could Allow Remote Code Execution."

How does this bulletin relate to the vulnerabilities described in Microsoft Security Advisory (973882)?
This bulletin addresses vulnerabilities in the public version of the Active Template Library (ATL). Vulnerabilities in the private version of ATL are described in Microsoft Security Advisory (973882).

If these are remote code execution vulnerabilities, why is this bulletin only rated Moderate? 
This bulletin is rated Moderate because Microsoft Visual Studio, by default, is not affected by these vulnerabilities. Controls and components built using the affected ATL are vulnerable, and if affected, would be rated Critical or Moderate depending on the type of vulnerability present in the control or component.

Are Visual Studio users directly affected by these vulnerabilities? 
No. The existence of Visual Studio on your system does not make you vulnerable to this issue.

The update associated with this bulletin is intended for developers who create components and controls so that they can use Visual Studio to create components and controls that are not vulnerable to the reported issues. Only vulnerable components and controls developed with an affected ATL version are affected by this issue. Developers who built or redistributed components and controls built with affected versions of the ATL should install the update provided in this bulletin and follow the steps provided to ensure that their components and controls do not contain the vulnerabilities described in this bulletin.

Which versions of the ActiveTemplate Library are affected by these vulnerabilities?
Versions 7.0, 7.1, 8.0, and 9.0 are affected. All others versions are unsupported.

Which versions of Visual Studio are affected?
Please see Affected and Non-Affected Software, in this Microsoft Security Bulletin.

Is this security update related to MS09-034, also released as an out-of-band update? 
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? 
This security update is specifically intended for developers of components and controls. Developers who built or redistributed components and controls built with affected versions of the Active Template Library should install the update provided in this bulletin and follow the steps provided to ensure that their components and controls do not contain the vulnerabilities described in this bulletin.

If I have installed the MS09-034 update, do I still need to install additional components and controlsissued by Microsoft or third parties that address the vulnerabilities described in Microsoft Security Advisory 973882 and Microsoft Security Bulletin MS09-035? 
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.

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 is ATL?
The Active Template Library (ATL) is a set of template-based C++ classes that let you 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.

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

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.

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.

I am a developer and I have questions regarding this issue that are not documented in this Microsoft Security Bulletin. What can I do?
As part of our response to this issue, Microsoft is providing specialized developer content and links to forums to get your questions answered by Microsoft resources and the Microsoft developer community. For more information, please see the following MSDN Article.

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 July bulletin summary. For more information, see Microsoft Exploitability Index.

Affected Software ATL Uninitialized Object Vulnerability - CVE-2009-0901 ATL COM Initialization Vulnerability - CVE-2009-2493 ATL Null String Vulnerability - CVE-2009-2495 Aggregate Severity Rating
Microsoft Visual Studio .NET 2003 Service Pack 1 Moderate \ Remote Code Execution Moderate \ Remote Code Execution Moderate \ Information disclosure Moderate
Microsoft Visual Studio 2005 Service Pack 1 Moderate \ Remote Code Execution Moderate \ Remote Code Execution Moderate \ Information disclosure Moderate
Microsoft Visual Studio 2005 Service Pack 1 64-bit Hosted Visual C++ Tools Moderate \ Remote Code Execution Moderate \ Remote Code Execution Moderate \ Information disclosure Moderate
Windows Embedded CE 6.0 Moderate \ Remote Code Execution Moderate \ Remote Code Execution Moderate \ Information disclosure Moderate
Microsoft Visual Studio 2008 Moderate \ Remote Code Execution Moderate \ Remote Code Execution Moderate \ Information disclosure Moderate
Microsoft Visual Studio 2008 Service Pack 1 Not applicable Moderate \ Remote Code Execution Moderate \ Information disclosure Moderate
Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package Moderate \ Remote Code Execution Moderate \ Remote Code Execution Moderate \ Information disclosure Moderate
Microsoft Visual C++ 2008 Redistributable Package Moderate \ Remote Code Execution Moderate \ Remote Code Execution Moderate \ Information disclosure Moderate
Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package Moderate \ Remote Code Execution Moderate \ Remote Code Execution Moderate \ Information disclosure Moderate

ATL Uninitialized Object Vulnerability - CVE-2009-0901

A remote code execution vulnerability exists in the Microsoft Active Template Library (ATL) due to an issue 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, 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 issue 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:

  • By default, Visual Studio as a product is not vulnerable to this issue. Instead, components and controls built with the vulnerable versions of ATL may be vulnerable.
  • Mitigating factors and Workarounds for potentially vulnerable components and controls are described in Microsoft Security Advisory (973882).

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:

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

What is the scope of the vulnerability? 
This vulnerability only directly affects systems with vulnerable components and controls installed that were built using affected versions of Microsoft's ATL.

This is a remote code execution vulnerability. For example, 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.

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 ensuring VariantClear() can only be called on initialized variants, and provides updated versions of ATL that allow developers to address this issue in potentially vulnerable controls.

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.

ATL COM Initialization Vulnerability - CVE-2009-2493

A remote code execution vulnerability exists in the Microsoft Active Template Library (ATL) due to issues 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 issue 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:

  • By default, Visual Studio as a product is not vulnerable to this issue. Instead, components and controls built with the vulnerable versions of ATL may be vulnerable.
  • Mitigating factors and Workarounds for potentially vulnerable components and controls are described in Microsoft Security Advisory (973882).

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:

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

What is the scope of the vulnerability? 
This vulnerability only directly affects systems with components and controls installed that were built using Visual Studio ATL.

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

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 ATL that allow developers to address this issue in potentially vulnerable controls.

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.

ATL Null String Vulnerability - CVE-2009-2495

An information disclosure vulnerability exists in the Microsoft Active Template Library (ATL) that could allow a string to be read without a terminating NULL character. An attacker could manipulate this string to read extra data beyond the end of the string and thus disclose information in memory. This vulnerability only directly affects systems with components and controls installed that were built using Visual Studio ATL. An attacker who successfully exploited this vulnerability could run a malicious component or control that could disclose information, forward user data to a third party, or access any data on the affected systems that was accessible to the logged-on user. Note that this vulnerability would not allow an attacker to execute code or to elevate their user rights directly, but it could be used to produce information that could be used to try to further compromise the affected system.

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

Mitigating Factors for ATL Null String Vulnerability - CVE-2009-2495

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:

  • By default, Visual Studio as a product is not vulnerable to this issue. Instead, components and controls built with the vulnerable versions of ATL may be vulnerable.
  • Mitigating factors and Workarounds for potentially vulnerable components and controls are described in Microsoft Security Advisory (973882).

Workarounds for ATL Null String Vulnerability - CVE-2009-2495

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:

FAQ for ATL Null String Vulnerability - CVE-2009-2495

What is the scope of the vulnerability? 
This vulnerability only directly affects systems with components and controls installed that were built using Visual Studio ATL.

This is an information disclosure vulnerability. An attacker who successfully exploited this vulnerability could run a malicious component or control that could disclose information, forward user data to a third party, or access any data on the affected systems that was accessible to the logged-on user. Note that this vulnerability would not allow an attacker to execute code or to elevate their user rights directly, but it could be used to produce useful information that could be used to try to further compromise the affected system.

What causes the vulnerability? 
The vulnerability results from an issue in the ATL headers that could allow a string to be read with no ending NULL bytes. An attacker could manipulate this string to read extra data beyond the end of the string and thus disclose information in memory.

What might an attacker use the vulnerability to do? 
An attacker who successfully exploited this vulnerability could access any data available to the logged on user.

How could an attacker exploit the vulnerability? 
If a user has a vulnerable control on their system, and an attacker bypasses the mitigations described in Microsoft Security Advisory (973882), an attacker could read information in memory on the affected system.

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 enforcing proper buffer allocation when reading a stream and providing updated versions of ATL that allow developers to address this issue in potentially vulnerable controls.

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.

Update Information

Detection and Deployment Tools and Guidance

The following Detection and Deployment Guidance provides information on how to ensure the versions of Visual Studio in this Security Bulletin have been updated with ATL headers that address the vulnerabilities discussed above.

Manage the software and security updates you need to deploy to the servers, desktop, and mobile systems in your organization. For more information see the TechNet Update Management Center. The Microsoft TechNet Security Web site provides additional information about security in Microsoft products.

Security updates are available from Microsoft Update and Windows Update. Security updates are also available from the Microsoft Download Center. You can find them most easily by doing a keyword search for "security update."

Finally, security updates can be downloaded from the Microsoft Update Catalog. The Microsoft Update Catalog provides a searchable catalog of content made available through Windows Update and Microsoft Update, including security updates, drivers and service packs. By searching using the security bulletin number (such as, "MS07-036"), you can add all of the applicable updates to your basket (including different languages for an update), and download to the folder of your choosing. For more information about the Microsoft Update Catalog, see the Microsoft Update Catalog FAQ.

Note Starting August 1, 2009, Microsoft will discontinue support for Office Update and the Office Update Inventory Tool. To continue getting the latest updates for Microsoft Office products, use Microsoft Update. For more information, see About Microsoft Office Update: Frequently Asked Questions.

Detection and Deployment Guidance

Microsoft provides detection and deployment guidance for security updates. This guidance contains recommendations and information that can help IT professionals understand how to use various tools for detection and deployment of security updates. For more information, see Microsoft Knowledge Base Article 961747.

Microsoft Baseline Security Analyzer

Microsoft Baseline Security Analyzer (MBSA) allows administrators to scan local and remote systems for missing security updates as well as common security misconfigurations. For more information about MBSA, visit Microsoft Baseline Security Analyzer.

The following table provides the MBSA detection summary for this security update.

Software MBSA 2.1
Microsoft Visual Studio .NET 2003 Service Pack 1 No
Microsoft Visual Studio 2005 Service Pack 1 Yes
Microsoft Visual Studio 2005 Service Pack 1 64-bit Hosted Visual C++ Tools Yes
Microsoft Visual Studio 2008 Yes
Microsoft Visual Studio 2008 Service Pack 1 Yes
Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package Yes
Microsoft Visual C++ 2008 Redistributable Package Yes
Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package Yes

For more information about MBSA 2.1, see MBSA 2.1 Frequently Asked Questions.

Windows Server Update Services

By using Windows Server Update Services (WSUS), administrators can deploy the latest critical updates and security updates for Windows 2000 operating systems and later, Office XP and later, Exchange Server 2003, and SQL Server 2000. For more information about how to deploy this security update using Windows Server Update Services, visit the Windows Server Update Services Web site.

Systems Management Server

The following table provides the SMS detection and deployment summary for this security update.

Software SMS 2.0 SMS 2003 with SUSFP SMS 2003 with ITMU Configuration Manager 2007
Microsoft Visual Studio .NET 2003 Service Pack 1 Yes Yes No No
Microsoft Visual Studio 2005 Service Pack 1 No No Yes Yes
Microsoft Visual Studio 2005 Service Pack 1 64-bit Hosted Visual C++ Tools No No Yes Yes
Microsoft Visual Studio 2008 No No Yes Yes
Microsoft Visual Studio 2008 Service Pack 1 No No Yes Yes
Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package No No Yes Yes
Microsoft Visual C++ 2008 Redistributable Package No No Yes Yes
Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package No No Yes Yes

For SMS 2.0 and SMS 2003, the SMS SUS Feature Pack (SUSFP), which includes the Security Update Inventory Tool (SUIT), can be used by SMS to detect security updates. See also Downloads for Systems Management Server 2.0.

For SMS 2003, the SMS 2003 Inventory Tool for Microsoft Updates (ITMU) can be used by SMS to detect security updates that are offered by Microsoft Update and that are supported by Windows Server Update Services. For more information about the SMS 2003 ITMU, see SMS 2003 Inventory Tool for Microsoft Updates. SMS 2003 can also use the Microsoft Office Inventory Tool to detect required updates for Microsoft Office applications. For more information about the Office Inventory Tool and other scanning tools, see SMS 2003 Software Update Scanning Tools. See also Downloads for Systems Management Server 2003.

System Center Configuration Manager 2007 uses WSUS 3.0 for detection of updates. For more information about Configuration Manager 2007 Software Update Management, visit System Center Configuration Manager 2007.

For more information about SMS, visit the SMS Web site.

For more detailed information, see Microsoft Knowledge Base Article 910723: Summary list of monthly detection and deployment guidance articles.

Update Compatibility Evaluator and Application Compatibility Toolkit

Updates often write to the same files and registry settings required for your applications to run. This can trigger incompatibilities and increase the time it takes to deploy security updates. You can streamline testing and validating Windows updates against installed applications with the Update Compatibility Evaluator components included with Application Compatibility Toolkit 5.0.

The Application Compatibility Toolkit (ACT) contains the necessary tools and documentation to evaluate and mitigate application compatibility issues before deploying Microsoft Windows Vista, a Windows Update, a Microsoft Security Update, or a new version of Windows Internet Explorer in your environment.

Security Update Deployment

Affected Software

For information about the specific security update for your affected software, click the appropriate link:

Microsoft Visual Studio .NET 2003 Service Pack 1

Reference Table

The following table contains the security update information for this software. You can find additional information in the subsection, Deployment Information, in this section.

Inclusion in Future Service Packs Visual Studio .NET 2003 Service Pack 2
Deployment
Installing without user intervention VS7.1sp1-KB971089-X86 /q
Installing without restarting VS7.1sp1-KB971089-X86 /norestart
Update log file VS7.1SP1-KB971089-X86-intl-msi.0.log\ VS7.1SP1-KB971089-X86-intl-wrapper.log
Further information For detection and deployment, see the earlier section, Detection and Deployment Tools and Guidance.
Restart Requirement
Restart required? In some cases, this update does not require a restart. If the required files are being used, this update will require a restart. If this behavior occurs, a message appears that advises you to restart.
Hotpatching Not applicable
Removal Information Use Add or Remove Programs tool in Control Panel.
File Information See Microsoft Knowledge Base Article 971089
Registry Key Verification HKEY_LOCAL_MACHINE\Software\Microsoft\Updates\Visual Studio\7.1\M971089\ "Installed" = dword:1

Deployment Information

Installing the Update

You can install the update from the appropriate download link in the Affected and Non-Affected Software section. If you installed your application from a server location, the server administrator must instead update the server location with the administrative update and deploy that update to your system.

This security update requires that Windows Installer 3.1 or later be installed on the system.

To install the 3.1 or later version of Windows Installer, visit one of the following Microsoft Web sites:

This security update supports the following setup switches.

Switch Description
/? or /h or /help Display usage dialog box.
Setup Mode ** **
/q[n b r f] Sets user interface level\ n - No UI\ b - Basic UI\ r - Reduced UI\ f - Full UI
/quiet Same as /q
/passive Same as /qb
Install Options ** **
/extract [directory] Extract the package to the specified directory.
/uninstall or /u Uninstall this update.
/addsource or /as Specifies the source path of the product msi. This option may be used when installing the the update results in a prompt to insert the installation source media for the product. For example:\ <update executable> /addsource "C:\Product MSI\Visual Studio\enu\vs_setup.msi" /addsource "C:\Product MSI\Net\Netfx.msi"
Restart Options ** **
/norestart Do not restart after the installation is complete
/promptrestart Prompts the user for restart if necessary
/forcerestart Restart the computer after installation if necessary (e.g. if a file is locked or in use)
Logging Options ** **
/l[i w e a r u c m o p v x + ! *] <LogFile> i - Status messages\ w - Nonfatal warnings\ e - All error messages\ a - Start up of actions\ r - Action-specific records\ u - User requests\ c - Initial UI parameters\ m - Out-of-memory or fatal exit information\ o - Out-of-disk-space messages\ p - Terminal properties\ v - Verbose output\ x - Extra debugging information\ + - Append to existing log file\ ! - Flush each line to the log\ * - Log all information, except for v and x options
/log <LogFile> Equivalent of /l* <LogFile>
/sendreport Send installation data for this update to Microsoft as a Watson report. No personally identifiable information is sent.

Note You can combine these switches into one command. For backward compatibility, the security update also supports many of the setup switches that the earlier version of the Setup program uses. For more information about the supported installation switches, see this Microsoft MSDN article.

Removing the Update

To remove this security update, use the Add or Remove Programs tool in Control Panel.

Verifying that the Update Has Been Applied

  • Microsoft Baseline Security Analyzer
    To verify that a security update has been applied to an affected system, you may be able to use the Microsoft Baseline Security Analyzer (MBSA) tool. See the section, Detection and Deployment Tools and Guidance, earlier in this bulletin for more information.

  • File Version Verification
    Note Because there are several versions and editions of Microsoft Windows, the following steps may be different on your system. If they are, see your product documentation to complete these steps.

    1. Click Start, and then click Search.

    2. In the Search Results pane, click All files and folders under Search Companion.

    3. In the All or part of the file name box, type a file name from the appropriate file information table, and then click Search.

    4. In the list of files, right-click a file name from the appropriate file information table, and then click Properties.
      Note Depending on the edition of the operating system, or the programs that are installed on your system, some of the files that are listed in the file information table may not be installed.

    5. On the Version tab, determine the version of the file that is installed on your system by comparing it to the version that is documented in the appropriate file information table.
      Note Attributes other than the file version may change during installation. Comparing other file attributes to the information in the file information table is not a supported method of verifying that the update has been applied. Also, in certain cases, files may be renamed during installation. If the file or version information is not present, use one of the other available methods to verify update installation.

Microsoft Visual Studio 2005 Service Pack 1

Reference Table

The following table contains the security update information for this software. You can find additional information in the subsection, Deployment Information, in this section.

Inclusion in Future Service Packs The update for this issue will be included in Visual Studio 2005 Service Pack 2
Deployment
Installing without user intervention For Microsoft Visual Studio 2005 Service Pack 1 (KB971090):\ VS80sp1-KB971090-X86-intl /qn\ \ For Microsoft Visual Studio 2005 Service Pack 1 (KB973673):\ VS80sp1-KB973673-X86-intl /qn\ \ For Microsoft Visual Studio 2005 Service Pack 1 64-bit Hosted Visual C++ Tools (KB973830):\ VS80sp1-KB973830-ia64-intl /qn
Installing without restarting For Microsoft Visual Studio 2005 Service Pack 1 (KB971090):\ VS80sp1-KB971090-X86-intl /norestart\ \ For Microsoft Visual Studio 2005 Service Pack 1 (KB973673):\ VS80sp1-KB973673-X86-intl /norestart\ \ For Microsoft Visual Studio 2005 Service Pack 1 64-bit Hosted Visual C++ Tools (KB973830):\ VS80sp1-KB973830-ia64-intl /norestart
Update log file Not applicable
Further information For detection and deployment, see the earlier section, Detection and Deployment Tools and Guidance.\ \ For features you can selectively install, see the Office Features for Administrative Installations subsection in this section.
Restart Requirement
Restart required? In some cases, this update does not require a restart. If the required files are being used, this update will require a restart. If this behavior occurs, a message appears that advises you to restart.
Hotpatching Not applicable
Removal Information Use Add or Remove Programs tool in Control Panel.
File Information For Microsoft Visual Studio 2005 Service Pack 1 (KB971090):\ See Microsoft Knowledge Base Article 971090\ \ For Microsoft Visual Studio 2005 Service Pack 1 (KB973673):\ See Microsoft Knowledge Base Article 973673\ \ For Microsoft Visual Studio 2005 Service Pack 1 64-bit Hosted Visual C++ Tools (KB973830):\ See Microsoft Knowledge Base Article 973830
Registry Key Verification For Microsoft Visual Studio 2005 Service Pack 1 (KB971090):\ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Microsoft Visual Studio 2005 Professional Edition - ENU\KB971090\ "Installed" = dword:1\ \ For Microsoft Visual Studio 2005 Service Pack 1 64-bit Hosted Visual C++ Tools (KB973830):\ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Microsoft Visual Studio 2005 Professional Edition - ENU\KB973830\ "Installed" = dword:1
Product Code Verification For Microsoft Visual Studio 2005 Service Pack 1 (KB973673):\ {837b34e3-7c30-493c-8f6a-2b0f04e2912c}\ \ For instructions on how to verify installation using product codes, see Microsoft Knowledge Base Article 974653.

Deployment Information

Installing the Update

You can install the update from the appropriate download link in the Affected and Non-Affected Software section. If you installed your application from a server location, the server administrator must instead update the server location with the administrative update and deploy that update to your system. For more information about Administrative Installation Points, refer to the Office Administrative Installation Point information in the Detection and Deployment Tools and Guidance subsection.

This security update requires that Windows Installer 2.0 or later be installed on the system. All supported versions of Windows include Windows Installer 2.0 or a later version.

To install the latest version of Windows Installer, visit the following Microsoft Web site:

For more information about the terminology that appears in this bulletin, such as hotfix, see Microsoft Knowledge Base Article 824684.

This security update supports the following setup switches.

Switch Description
/? or /h or /help Display usage dialog box.
Setup Mode ** **
/q[n b r f] Sets user interface level\ n - No UI\ b - Basic UI\ r - Reduced UI\ f - Full UI
/quiet Same as /q
/passive Same as /qb
Install Options ** **
/extract [directory] Extract the package to the specified directory.
/uninstall or /u Uninstall this update.
/addsource or /as Specifies the source path of the product msi. This option may be used when installing the the update results in a prompt to insert the installation source media for the product. For example:\ <update executable> /addsource "C:\Product MSI\Visual Studio\enu\vs_setup.msi" /addsource "C:\Product MSI\Net\Netfx.msi"
Restart Options ** **
/norestart Do not restart after the installation is complete
/promptrestart Prompts the user for restart if necessary
/forcerestart Always restart the computer after installation
Logging Options ** **
/l[i w e a r u c m o p v x + ! *] <LogFile> i - Status messages\ w - Nonfatal warnings\ e - All error messages\ a - Start up of actions\ r - Action-specific records\ u - User requests\ c - Initial UI parameters\ m - Out-of-memory or fatal exit information\ o - Out-of-disk-space messages\ p - Terminal properties\ v - Verbose output\ x - Extra debugging information\ + - Append to existing log file\ ! - Flush each line to the log\ * - Log all information, except for v and x options
/log <LogFile> Equivalent of /l* <LogFile>
/sendreport Send installation data for this update to Microsoft as a Watson report. No personally identifiable information is sent.

Note You can combine these switches into one command. For backward compatibility, the security update also supports many of the setup switches that the earlier version of the Setup program uses. For more information about the supported installation switches, see Microsoft Knowledge Base Article 262841.

Removing the Update

To remove this security update, use the Add or Remove Programs tool in Control Panel.

Note When you remove this update, you may be prompted to insert the 2007 Microsoft Office CD in the CD drive. Additionally, you may not have the option to uninstall the update from the Add or Remove Programs tool in Control Panel. There are several possible causes for this issue. For more information about the removal, see Microsoft Knowledge Base Article 903771.

Verifying that the Update Has Been Applied

  • Microsoft Baseline Security Analyzer
    To verify that a security update has been applied to an affected system, you may be able to use the Microsoft Baseline Security Analyzer (MBSA) tool. See the “Microsoft baseline Security Analyzer” heading under the section, Microsoft Detection and Deployment Tools and Guidance.

  • File Version Verification
    Note Because there are several versions and editions of Microsoft Windows, the following steps may be different on your system. If they are, see your product documentation to complete these steps.

    1. Click Start, and then click Search.

    2. In the Search Results pane, click All files and folders under Search Companion.

    3. In the All or part of the file name box, type a file name from the appropriate file information table, and then click Search.

    4. In the list of files, right-click a file name from the appropriate file information table, and then click Properties.
      Note Depending on the edition of the operating system, or the programs that are installed on your system, some of the files that are listed in the file information table may not be installed.

    5. On the Version tab, determine the version of the file that is installed on your system by comparing it to the version that is documented in the appropriate file information table.
      Note Attributes other than the file version may change during installation. Comparing other file attributes to the information in the file information table is not a supported method of verifying that the update has been applied. Also, in certain cases, files may be renamed during installation. If the file or version information is not present, use one of the other available methods to verify update installation.

Microsoft Visual Studio 2008 and Microsoft Visual Studio 2008 Service Pack 1

Reference Table

The following table contains the security update information for this software. You can find additional information in the subsection, Deployment Information, in this section.

Inclusion in Future Service Packs The update for this issue will be included in Visual Studio 2008 Service Pack 2
Deployment
Installing without user intervention For Microsoft Visual Studio 2008 (KB971091):\ VS90-KB971091-x86 /q\ \ For Microsoft Visual Studio 2008 (KB973674):\ VS90-KB973674-x86 /q\ \ For Microsoft Visual Studio 2008 Service Pack 1 (KB971092):\ VS90-KB971092-x86 /q\ \ For Microsoft Visual Studio 2008 Service Pack 1 (KB973675):\ VS90-KB973675-x86 /q
Installing without restarting For Microsoft Visual Studio 2008 (KB971091):\ VS90-KB971091-x86 /norestart\ \ For Microsoft Visual Studio 2008 (KB973674):\ VS90-KB973674-x86 /norestart\ \ For Microsoft Visual Studio 2008 Service Pack 1 (KB971092):\ VS90-KB971092-x86 /norestart\ \ For Microsoft Visual Studio 2008 Service Pack 1 (KB973675):\ VS90-KB973675-x86 /norestart
Update log file Not applicable
Further information For detection and deployment, see the earlier section, Detection and Deployment Tools and Guidance.\ \ For features you can selectively install, see the Office Features for Administrative Installations subsection in this section.
Restart Requirement
Restart required? In some cases, this update does not require a restart. If the required files are being used, this update will require a restart. If this behavior occurs, a message appears that advises you to restart.
Hotpatching Not applicable
Removal Information Use Add or Remove Programs tool in Control Panel.
File Information For Microsoft Visual Studio 2008 (KB971091):\ See Microsoft Knowledge Base Article 971091\ \ For Microsoft Visual Studio 2008 (KB973674):\ See Microsoft Knowledge Base Article 973674\ \ For Microsoft Visual Studio 2008 Service Pack 1 (KB971092):\ See Microsoft Knowledge Base Article 971092\ \ For Microsoft Visual Studio 2008 Service Pack 1 (KB973675):\ See Microsoft Knowledge Base Article 973675
Registry Key Verification For Microsoft Visual Studio 2008 (KB971091):\ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Microsoft Visual Studio Team System 2008 Team Suite - ENU\KB971091\ "ThisVersionInstalled" = REG_SZ:"Y"\ \ For Microsoft Visual Studio 2008 Service Pack 1 (KB971092):\ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Microsoft Visual Studio Team System 2008 Team Suite - ENU\KB971092\ "ThisVersionInstalled" = REG_SZ:"Y"
Product Code Verification For Microsoft Visual Studio 2008 (KB973674):\ {E503B4BF-F7BB-3D5F-8BC8-F694B1CFF942}\ \ For Microsoft Visual Studio 2008 Service Pack 1 (KB973675):\ {1F1C2DFC-2D24-3E06-BCB8-725134ADF989}\ \ For instructions on how to verify installation using product codes, see Microsoft Knowledge Base Article 974653.

Deployment Information

Installing the Update

You can install the update from the appropriate download link in the Affected and Non-Affected Software section. If you installed your application from a server location, the server administrator must instead update the server location with the administrative update and deploy that update to your system. For more information about Administrative Installation Points, refer to the Office Administrative Installation Point information in the Detection and Deployment Tools and Guidance subsection.

This security update requires that Windows Installer 2.0 or later be installed on the system. All supported versions of Windows include Windows Installer 2.0 or a later version.

To install the latest version of Windows Installer, visit the following Microsoft Web site:

For more information about the terminology that appears in this bulletin, such as hotfix, see Microsoft Knowledge Base Article 824684.

This security update supports the following setup switches.

Switch Description
/? or /h or /help Display usage dialog box.
Setup Mode ** **
/q[n b r f] Sets user interface level\ n - No UI\ b - Basic UI\ r - Reduced UI\ f - Full UI
/quiet Same as /q
/passive Same as /qb
Install Options ** **
/extract [directory] Extract the package to the specified directory.
/uninstall or /u Uninstall this update.
/addsource or /as Specifies the source path of the product msi. This option may be used when installing the the update results in a prompt to insert the installation source media for the product. For example:\ <update executable> /addsource "C:\Product MSI\Visual Studio\enu\vs_setup.msi" /addsource "C:\Product MSI\Net\Netfx.msi"
Restart Options ** **
/norestart Do not restart after the installation is complete
/promptrestart Prompts the user for restart if necessary
/forcerestart Always restart the computer after installation
Logging Options ** **
/l[i w e a r u c m o p v x + ! *] <LogFile> i - Status messages\ w - Nonfatal warnings\ e - All error messages\ a - Start up of actions\ r - Action-specific records\ u - User requests\ c - Initial UI parameters\ m - Out-of-memory or fatal exit information\ o - Out-of-disk-space messages\ p - Terminal properties\ v - Verbose output\ x - Extra debugging information\ + - Append to existing log file\ ! - Flush each line to the log\ * - Log all information, except for v and x options
/log <LogFile> Equivalent of /l* <LogFile>
/sendreport Send installation data for this update to Microsoft as a Watson report. No personally identifiable information is sent.

Note You can combine these switches into one command. For backward compatibility, the security update also supports many of the setup switches that the earlier version of the Setup program uses. For more information about the supported installation switches, see Microsoft Knowledge Base Article 262841.

Removing the Update

To remove this security update, use the Add or Remove Programs tool in Control Panel.

Note When you remove this update, you may be prompted to insert the 2007 Microsoft Office CD in the CD drive. Additionally, you may not have the option to uninstall the update from the Add or Remove Programs tool in Control Panel. There are several possible causes for this issue. For more information about the removal, see Microsoft Knowledge Base Article 903771.

Verifying that the Update Has Been Applied

  • Microsoft Baseline Security Analyzer
    To verify that a security update has been applied to an affected system, you may be able to use the Microsoft Baseline Security Analyzer (MBSA) tool. See the “Microsoft baseline Security Analyzer” heading under the section, Microsoft Detection and Deployment Tools and Guidance.

  • File Version Verification
    Note Because there are several versions and editions of Microsoft Windows, the following steps may be different on your system. If they are, see your product documentation to complete these steps.

    1. Click Start, and then click Search.

    2. In the Search Results pane, click All files and folders under Search Companion.

    3. In the All or part of the file name box, type a file name from the appropriate file information table, and then click Search.

    4. In the list of files, right-click a file name from the appropriate file information table, and then click Properties.
      Note Depending on the edition of the operating system, or the programs that are installed on your system, some of the files that are listed in the file information table may not be installed.

    5. On the Version tab, determine the version of the file that is installed on your system by comparing it to the version that is documented in the appropriate file information table.
      Note Attributes other than the file version may change during installation. Comparing other file attributes to the information in the file information table is not a supported method of verifying that the update has been applied. Also, in certain cases, files may be renamed during installation. If the file or version information is not present, use one of the other available methods to verify update installation.

Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package

Reference Table

The following table contains the security update information for this software. You can find additional information in the subsection, Deployment Information, in this section.

Inclusion in Future Service Packs The update for this issue will be included in Visual Studio 2005 Service Pack 2
Deployment
Installing without user intervention For Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package (x86):\ vcredist_x86 /q\ \ For Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package (x64):\ vcredist_x64 /q\ \ For Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package (IA64):\ vcredist_ia64 /q
Installing without restarting For Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package (x86):\ vcredist_x86 /r:n\ \ For Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package (x64):\ vcredist_x64 /r:n\ \ For Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package (IA64):\ vcredist_ia64 /r:n
Update log file Not applicable
Further information For detection and deployment, see the earlier section, Detection and Deployment Tools and Guidance
Restart Requirement
Restart required? This update does not require a restart.
Hotpatching Not applicable
Removal Information Use Add or Remove Programs tool in Control Panel.
File Information See Microsoft Knowledge Base Article 973544
Registry Key Verification HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\VC\Servicing\8.0\RED\1033\ "Installed" = dword:1

Deployment Information

Installing the Update

You can install the update from the appropriate download link in the Affected and Non-Affected Software section. If you installed your application from a server location, the server administrator must instead update the server location with the administrative update and deploy that update to your system. For more information about Administrative Installation Points, refer to the Office Administrative Installation Point information in the Detection and Deployment Tools and Guidance subsection.

This security update requires that Windows Installer 2.0 or later be installed on the system. All supported versions of Windows include Windows Installer 2.0 or a later version.

To install the latest version of Windows Installer, visit the following Microsoft Web site:

For more information about the terminology that appears in this bulletin, such as hotfix, see Microsoft Knowledge Base Article 824684.

This security update supports the following setup switches.

Switch Description
/? Displays the command-line options.
Setup Modes
/q[:u :a] /q - Specifies quiet mode, or suppresses prompts.\ /q:u - Specifies user-quiet mode, which presents some dialog boxes to the user.\ /q:a - Specifies administrator-quiet mode, which does not present any dialog boxes to the user.
Install Options
/C Extracts the files without installing them. If /t: path is not specified, you are prompted for a target folder.
/T:path Specifies the target folder for extracting files.
/C:path Specifies the UNC path and name of the Setup .inf or .exe file.
/n:v No version checking - Install the package over any previous version.
Restart Options
/r:n Never restarts the computer after installation.
/r:i Prompts the user to restart the computer if a restart is required, except when used with /q:a.
/r:a Always restarts the computer after installation.
/r:s Restarts the computer after installation without prompting the user.

Note You can combine these switches into one command. For backward compatibility, the security update also supports many of the setup switches that the earlier version of the Setup program uses. For more information about the supported installation switches, see Microsoft Knowledge Base Article 262841.

Removing the Update

To remove this security update, use the Add or Remove Programs tool in Control Panel.

Note When you remove this update, you may be prompted to insert the 2007 Microsoft Office CD in the CD drive. Additionally, you may not have the option to uninstall the update from the Add or Remove Programs tool in Control Panel. There are several possible causes for this issue. For more information about the removal, see Microsoft Knowledge Base Article 903771.

Verifying that the Update Has Been Applied

  • Microsoft Baseline Security Analyzer
    To verify that a security update has been applied to an affected system, you may be able to use the Microsoft Baseline Security Analyzer (MBSA) tool. See the “Microsoft baseline Security Analyzer” heading under the section, Microsoft Detection and Deployment Tools and Guidance.

  • File Version Verification
    Note Because there are several versions and editions of Microsoft Windows, the following steps may be different on your system. If they are, see your product documentation to complete these steps.

    1. Click Start, and then click Search.

    2. In the Search Results pane, click All files and folders under Search Companion.

    3. In the All or part of the file name box, type a file name from the appropriate file information table, and then click Search.

    4. In the list of files, right-click a file name from the appropriate file information table, and then click Properties.
      Note Depending on the edition of the operating system, or the programs that are installed on your system, some of the files that are listed in the file information table may not be installed.

    5. On the Version tab, determine the version of the file that is installed on your system by comparing it to the version that is documented in the appropriate file information table.
      Note Attributes other than the file version may change during installation. Comparing other file attributes to the information in the file information table is not a supported method of verifying that the update has been applied. Also, in certain cases, files may be renamed during installation. If the file or version information is not present, use one of the other available methods to verify update installation.

Microsoft Visual C++ 2008 Redistributable Package and Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package

Reference Table

The following table contains the security update information for this software. You can find additional information in the subsection, Deployment Information, in this section.

Inclusion in Future Service Packs The update for this issue will be included in Visual Studio 2008 Service Pack 2
Deployment
Installing without user intervention For Microsoft Visual C++ 2008 Redistributable Package and Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package (x86):\ vcredist_x86 /q\ \ For Microsoft Visual C++ 2008 Redistributable Package and Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package (x64):\ vcredist_x64 /q\ \ For Microsoft Visual C++ 2008 Redistributable Package and Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package (IA64):\ vcredist_ia64 /q
Installing without restarting For Microsoft Visual C++ 2008 Redistributable Package and Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package (x86):\ vcredist_x86 /r:n\ \ For Microsoft Visual C++ 2008 Redistributable Package and Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package (x64):\ vcredist_x64 /r:n\ \ For Microsoft Visual C++ 2008 Redistributable Package and Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package (IA64):\ vcredist_ia64 /r:n
Update log file Not applicable
Further information For detection and deployment, see the earlier section, Detection and Deployment Tools and Guidance
Restart Requirement
Restart required? This update does not require a restart.
Hotpatching Not applicable
Removal Information Use Add or Remove Programs tool in Control Panel.
File Information See Microsoft Knowledge Base Article 973552
Registry Key Verification HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\VC\Servicing\9.0\RED\1033\ "Installed" = dword:1

Deployment Information

Installing the Update

You can install the update from the appropriate download link in the Affected and Non-Affected Software section. If you installed your application from a server location, the server administrator must instead update the server location with the administrative update and deploy that update to your system. For more information about Administrative Installation Points, refer to the Office Administrative Installation Point information in the Detection and Deployment Tools and Guidance subsection.

This security update requires that Windows Installer 2.0 or later be installed on the system. All supported versions of Windows include Windows Installer 2.0 or a later version.

To install the latest version of Windows Installer, visit the following Microsoft Web site:

For more information about the terminology that appears in this bulletin, such as hotfix, see Microsoft Knowledge Base Article 824684.

This security update supports the following setup switches.

Switch Description
/? Displays the command-line options.
Setup Modes
/q[:u :a] /q - Specifies quiet mode, or suppresses prompts.\ /q:u - Specifies user-quiet mode, which presents some dialog boxes to the user.\ /q:a - Specifies administrator-quiet mode, which does not present any dialog boxes to the user.
Install Options
/C Extracts the files without installing them. If /t: path is not specified, you are prompted for a target folder.
/T:path Specifies the target folder for extracting files.
/C:path Specifies the UNC path and name of the Setup .inf or .exe file.
/n:v No version checking - Install the package over any previous version.
Restart Options
/r:n Never restarts the computer after installation.
/r:i Prompts the user to restart the computer if a restart is required, except when used with /q:a.
/r:a Always restarts the computer after installation.
/r:s Restarts the computer after installation without prompting the user.

Note You can combine these switches into one command. For backward compatibility, the security update also supports many of the setup switches that the earlier version of the Setup program uses. For more information about the supported installation switches, see Microsoft Knowledge Base Article 262841.

Removing the Update

To remove this security update, use the Add or Remove Programs tool in Control Panel.

Note When you remove this update, you may be prompted to insert the 2007 Microsoft Office CD in the CD drive. Additionally, you may not have the option to uninstall the update from the Add or Remove Programs tool in Control Panel. There are several possible causes for this issue. For more information about the removal, see Microsoft Knowledge Base Article 903771.

Verifying that the Update Has Been Applied

  • Microsoft Baseline Security Analyzer
    To verify that a security update has been applied to an affected system, you may be able to use the Microsoft Baseline Security Analyzer (MBSA) tool. See the “Microsoft baseline Security Analyzer” heading under the section, Microsoft Detection and Deployment Tools and Guidance.

  • File Version Verification
    Note Because there are several versions and editions of Microsoft Windows, the following steps may be different on your system. If they are, see your product documentation to complete these steps.

    1. Click Start, and then click Search.

    2. In the Search Results pane, click All files and folders under Search Companion.

    3. In the All or part of the file name box, type a file name from the appropriate file information table, and then click Search.

    4. In the list of files, right-click a file name from the appropriate file information table, and then click Properties.
      Note Depending on the edition of the operating system, or the programs that are installed on your system, some of the files that are listed in the file information table may not be installed.

    5. On the Version tab, determine the version of the file that is installed on your system by comparing it to the version that is documented in the appropriate file information table.
      Note Attributes other than the file version may change during installation. Comparing other file attributes to the information in the file information table is not a supported method of verifying that the update has been applied. Also, in certain cases, files may be renamed during installation. If the file or version information is not present, use one of the other available methods to verify update installation.

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.

Built at 2014-04-18T13:49:36Z-07:00