Lucene search

K
securityvulnsSecurityvulnsSECURITYVULNS:DOC:23810
HistoryMay 11, 2010 - 12:00 a.m.

Microsoft Security Bulletin MS10-031 - Critical Vulnerability in Microsoft Visual Basic for Applications Could Allow Remote Code Execution (978213)

2010-05-1100:00:00
vulners.com
41

Microsoft Security Bulletin MS10-031 - Critical
Vulnerability in Microsoft Visual Basic for Applications Could Allow Remote Code Execution (978213)
Published: May 11, 2010

Version: 1.0
General Information
Executive Summary

This security update resolves a privately reported vulnerability in Microsoft Visual Basic for Applications. The vulnerability could allow remote code execution if a host application opens and passes a specially crafted file to the Visual Basic for Applications runtime. 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.

This security update is rated Critical for all supported versions of Microsoft Visual Basic for Applications SDK and third-party applications that use Microsoft Visual Basic for Applications. This security update is also rated Important for all supported editions of Microsoft Office XP, Microsoft Office 2003, and the 2007 Microsoft Office System. For more information, see the subsection, Affected and Non-Affected Software, in this section.

The update addresses the vulnerability by modifying the way that Visual Basic for Applications searches for ActiveX Controls embedded in documents. For more information about the vulnerability, see the Frequently Asked Questions (FAQ) subsection for the specific vulnerability entry under the next section, Vulnerability Information.

Recommendation. Microsoft recommends that customers apply the update immediately.

Known Issues. Microsoft Knowledge Base Article 978213 documents the currently known issues that customers may experience when installing this security update. The article also documents recommended solutions for these issues. When currently known issues and recommended solutions pertain only to specific releases of this software, this article provides links to further articles.
Top of sectionTop of section
Affected and Non-Affected Software

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

Affected Software
Office Suite Maximum Security Impact Aggregate Severity Rating Bulletins Replaced by this Update

Microsoft Office XP Service Pack 3
(KB976380)

Remote Code Execution

Important

MS08-013

Microsoft Office 2003 Service Pack 3
(KB976382)

Remote Code Execution

Important

MS08-013

2007 Microsoft Office System Service Pack 1 and 2007 Microsoft Office System Service Pack 2
(KB976321)

Remote Code Execution

Important

None

Developer Tools
Developer Tools Maximum Security Impact Aggregate Severity Rating Bulletins Replaced by this Update

Microsoft Visual Basic for Applications[1]
(KB974945)

Remote Code Execution

Critical

MS06-047

Microsoft Visual Basic for Applications SDK[2][3]

Remote Code Execution

Critical

MS06-047

[1]This update package applies to supported versions of the Microsoft Visual Basic for Applications runtime (Vbe6.dll) and is available from the Microsoft Download Center only.

[2]The supported versions of the VBA SDK are Microsoft Visual Basic for Applications SDK 6.3, Microsoft Visual Basic for Applications SDK 6.4, and Microsoft Visual Basic for Applications SDK 6.5.

[3]The updated version of the Visual Basic for Applications SDK that addresses the vulnerability described in this bulletin is available for independent software vendors (ISVs) from the Summit Software Company. For more information, see the next section, Frequently Asked Questions (FAQ) Related to This Security Update.

Non-Affected Software
Office and Other Software

Microsoft Office 2010 (32-bit editions) and Microsoft Office 2010 (64-bit editions)

Microsoft Office 2004 for Mac

Microsoft Office 2008 for Mac

Open XML File Format Converter for Mac

Microsoft Office Excel Viewer Service Pack 1 and Microsoft Office Excel Viewer Service Pack 2

Microsoft Office Word Viewer Service Pack 1 and Microsoft Office Word Viewer Service Pack 2

Microsoft Office PowerPoint Viewer 2007 Service Pack 1 and Microsoft Office PowerPoint Viewer 2007 Service Pack 2

Microsoft Office Visio Viewer 2007 Service Pack 1 and Microsoft Office Visio Viewer 2007 Service Pack 2

Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats Service Pack 1 and Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats Service Pack 2
Top of sectionTop of section

Frequently Asked Questions (FAQ) Related to This Security Update

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

I have applied the required Microsoft security updates, but I still have an affected version of the Visual Basic for Applications runtime (VBE6.DLL) on my system. How do I update this DLL?
There are cases where your system might still have an affected version of VBE6.DLL even after you have installed the required security updates for Microsoft Office and the update for Microsoft Visual Basic for Applications listed in this bulletin.

If VBE6.DLL was installed on your system by a supported version of Microsoft Office, then applying the security update for the affected version of Microsoft Office will replace VBE6.DLL with the updated version that addresses the vulnerability described in this bulletin. However, if VBE6.DLL was installed on your system by a third-party application, you may have to install an update for that program.

To update VBE6.DLL for third-party applications there are two possible scenarios depending on the third-party application's implementation of VBA. If you know that the third-party application is compliant to the recommended best practices for using a shared component as a side-by-side assembly, then applying the Microsoft Visual Basic for Applications (KB974945) update will replace VBE6.DLL in the shared location with the updated version that addresses the vulnerability described in this bulletin.

On the other hand, if the third-party application does not place VBE6.DLL in the shared location as per recommended best practices, then you should contact the third-party application developer and ask them to provide you with an updated version of their application that contains a newer version of the VBE6.DLL that addresses the vulnerability described in this bulletin. Note that not every third-party application that installs VBE6.DLL is vulnerable to the vulnerability described in this bulletin because the application might not use VBE6.DLL to search for ActiveX controls in a way that is exploitable. However, only the developer of that application can make that determination.

This security update only applies to Microsoft software. How can I detect if third-party applications have deployed an affected version of the Visual Basic for Applications runtime (VBE6.DLL) on my system?
Third-party applications that support VBA could deploy VBE6.DLL in a location that is not updated by this security update. For details on how to detect third-party applications on your system that have used VBE6.DLL, see Microsoft Knowledge Base Article 978213. In the case that you do have a third-party application that has shipped with its own copy of VBE6.DLL, to help ensure that your system is fully protected from the vulnerability described in this bulletin, you should contact the developer or vendor responsible for support for the third-party application directly.

I am a third-party application developer and I use Microsoft Visual Basic for Applications runtime in my application. Is my application vulnerable and how do I update it?
Developers who redistribute the Microsoft Visual Basic for Applications runtime VBE6.DLL should ensure that they update the version of the Microsoft Visual Basic for Applications runtime installed with their application by downloading an updated version of the Microsoft Visual Basic for Applications SDK from the Summit Software Company. For more information on best practices on redistributed component use, please see Microsoft Knowledge Base Article 835322 and the MSDN article, Isolated Applications and Side-by-side Assemblies.

I am an ISV. Where is the update for Microsoft Visual Basic for Applications SDK?
The update is available from the Summit Software Company. Summit Software Company is a global supplier of application customization software products and integration support services to independent software vendors (ISVs) and corporate developers. In June 1996, Summit Software entered into an agreement with Microsoft to sell Microsoft Visual Basic for Applications and related value-added technology and services. Summit continues to sell and support Microsoft VBA.

Why is this update Critical for Microsoft Visual Basic for Applications but only Important for Microsoft Office?
Microsoft Office XP and later versions have a built-in feature that prompts a user to Open, Save, or Cancel before opening a document. This mitigating factor reduces the vulnerability from Critical to Important because the vulnerability requires more than a single user action to complete the exploit.

I use Microsoft Office 2007 Service Pack 1. Are any additional security features included in this update?
Yes, as part of the servicing model for Microsoft Office 2007, when users of Microsoft Office 2007 Service Pack 1 install this update, their systems will be upgraded to security functionality that was initially released with Microsoft Office 2007 Service Pack 2. All updates released after April 24, 2009 for Microsoft Office 2007 will include these security features, which were introduced in Microsoft Office 2007 Service Pack 2. We have thoroughly tested this update, but as with all updates, we recommend that users perform testing appropriate to the environment and configuration of their systems.

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. For more information about the product lifecycle, visit the Microsoft Support Lifecycle Web site.

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. To determine the support lifecycle for your software release, see Select a Product for Lifecycle Information. For more information about service packs for these software releases, see Lifecycle Supported Service Packs.

Customers who require custom support for older software 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 the Microsoft Worldwide Information Web site, select the country in the Contact Information list, 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 Microsoft Support Lifecycle Policy FAQ.
Top of sectionTop of section
Vulnerability Information

Severity Ratings and Vulnerability Identifiers

The following severity ratings assume the potential maximum impact of the vulnerability. For information regarding the likelihood, within 30 days of this security bulletin's release, of the exploitability of the vulnerability in relation to its severity rating and security impact, please see the Exploitability Index in the May bulletin summary. For more information, see Microsoft Exploitability Index.
Vulnerability Severity Rating and Maximum Security Impact by Affected Software
Affected Software VBE6.DLL Stack Memory Corruption Vulnerability - CVE-2010-0815 Aggregate Severity Rating
Office Suite

Microsoft Office XP Service Pack 3

Important
Remote Code Execution

Important

Microsoft Office 2003 Service Pack 3

Important
Remote Code Execution

Important

2007 Microsoft Office System Service Pack 1 and 2007 Microsoft Office System Service Pack 2

Important
Remote Code Execution

Important
Developer Tools

Microsoft Visual Basic for Applications[1]

Critical
Remote Code Execution

Critical

Microsoft Visual Basic for Applications SDK[2]

Critical
Remote Code Execution

Critical

[1]This update package applies to supported versions of the Microsoft Visual Basic for Applications runtime (Vbe6.dll) and is available from the Microsoft Download Center only.

[2]The supported versions of the VBA SDK are Microsoft Visual Basic for Applications SDK 6.3, Microsoft Visual Basic for Applications SDK 6.4, and Microsoft Visual Basic for Applications SDK 6.5.
Top of sectionTop of section

VBE6.DLL Stack Memory Corruption Vulnerability - CVE-2010-0815

A remote code execution vulnerability exists in the way that Microsoft Visual Basic for Applications searches for ActiveX controls. This vulnerability could allow remote code execution if a host application opens and passes a specially crafted file to the Visual Basic for Applications runtime. 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.

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

Mitigating Factors for VBE6.DLL Stack Memory Corruption Vulnerability - CVE-2010-0815

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, the 2007 Microsoft Office System prompts a user with a security warning before activating an embedded ActiveX control in an Office document. Users who choose to not enable the control are protected by this default setting. For more information, see the Microsoft Office Online article, Enable or disable ActiveX controls in Office documents.
ā€¢

An attacker who successfully exploited this vulnerability could gain the same user rights as the local user. 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.
ā€¢

In a Web-based attack scenario, an attacker could host a Web site that contains a Web page that is used to exploit this vulnerability. In addition, compromised Web sites and Web sites that accept or host user-provided content or advertisements could contain specially crafted content that could exploit this vulnerability. In all cases, however, an attacker would have no way to force users to visit these Web sites. Instead, 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 Instant Messenger message that takes users to the attacker's Web site, and then convince them to open the specially crafted Office file.
ā€¢

The vulnerability cannot be exploited automatically through e-mail. For an attack to be successful, a user must open an attachment that is sent in an e-mail message.
Top of sectionTop of section

Workarounds for VBE6.DLL Stack Memory Corruption Vulnerability - CVE-2010-0815

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:
ā€¢

Disable ActiveX controls in the 2007 Microsoft Office System

You can disable ActiveX controls in the 2007 Microsoft Office System using the TrustCenter. Refer to the instructions for how to "Disable all controls without notification" in the Microsoft Office Online article, Enable or disable ActiveX controls in Office documents.

Impact of workaround. Embedded ActiveX controls (such as macros) will not run in Office documents.
ā€¢

Restrict access to VBE6.dll

For Microsoft Windows 2000, Windows XP, and Windows Server 2003, enter the following at a command prompt:

cacls "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll" /E /P everyone:N

For Windows Vista, Windows Server 2008, Windows 7, and Windows Server 2008 R2, enter the following at an elevated command prompt:

takeown /f "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll"
icacls "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll" /save %TEMP%\VBE6 _ACL.TXT
icacls "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll" /deny everyone:(F)

Impact of workaround. Embedded ActiveX controls (such as macros) will not run in Office documents. For instance, users will be unable to insert objects into Office documents.

How to undo the workaround.

For Microsoft Windows 2000, Windows XP, and Windows Server 2003, enter the following at a command prompt:

cacls "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll" /E /R everyone

For Windows Vista, Windows Server 2008, Windows 7, and Windows Server 2008 R2, enter the following at a command prompt:

icacls "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\" /restore %TEMP%\VBE6_ACL.TXT

ā€¢

Use the Microsoft Office Isolated Conversion Environment (MOICE) when opening files from unknown or untrusted sources

The Microsoft Office Isolated Conversion Environment (MOICE) helps protect Office 2003 installations by more securely opening Word, Excel, and PowerPoint binary format files.

To install MOICE, you must have Office 2003 or 2007 Office system installed.

To install MOICE, you must have the Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats. The compatibility pack is available as a free download from the Microsoft Download Center:

Download the FileFormatConverters.exe package now

MOICE requires all updates that are recommended for all Office programs. Visit Microsoft Update to install all recommended updates:

http://update.microsoft.com/microsoftupdate/v6/default.aspx?ln=en-us

To enable MOICE, change the registered handler for the office file formats. The following table describes the command to enable or to disable MOICE for the Office file formats:
Command to enable MOICE to be the registered handler Command to disable MOICE as the registered handler

ASSOC .XLS=oice.excel.sheet

ASSOC .xls=Excel.Sheet.8

ASSOC .XLT=oice.excel.template

ASSOC .xlt=Excel.Template

ASSOC .XLA=oice.excel.addin

ASSOC .xla=Excel.Addin

ASSOC .doc=oice.word.document

ASSOC .doc=Word.Document.8

ASSOC .PPT=oice.powerpoint.show

ASSOC .ppt=PowerPoint.Show.8

ASSOC .POT=oice.powerpoint.template

ASSOC .PPS=oice.powerpoint.slideshow

ASSOC .PPS=oice.powerpoint.slideshow

ASSOC .pps=PowerPoint.SlideShow.8

Note On Windows Vista, Windows Server 2008, Windows 7, and Windows Server 2008 R2, the commands above will need to be run from an elevated command prompt.

For more information on MOICE, see Microsoft Knowledge Base Article 935865.

Impact of workaround. Office 2003 and earlier formatted documents that are converted to the 2007 Microsoft Office System Open XML format by MOICE will not retain macro functionality. Additionally, documents with passwords or that are protected with Digital Rights Management cannot be converted.

How to undo the workaround. For information on how to undo this workaround, see Microsoft Knowledge Base Article 935865.
ā€¢

Do not open or save Microsoft Office files that you receive from untrusted sources or that you receive unexpectedly from trusted sources. This vulnerability could be exploited when a user opens a specially crafted file.
Top of sectionTop of section

FAQ for VBE6.DLL Stack Memory Corruption Vulnerability - CVE-2010-0815

What is the scope of the vulnerability?
This is a remote code execution vulnerability in Microsoft Visual Basic for Applications (VBA). An attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

What causes the vulnerability?
The vulnerability is caused by the way that Visual Basic for Applications searches for ActiveX controls in a document that supports VBA. As a result, it is possible for a host application, such as Microsoft Office or a third-party application developed for Visual Basic programmability, to pass a specially crafted document with embedded ActiveX controls to the VBA runtime creating a condition that could allow arbitrary code to be run.

What is Visual Basic for Applications (VBA)?
Microsoft VBA is a development technology for developing client desktop packaged applications and integrating them with existing data and systems. Microsoft VBA is based on the Microsoft Visual Basic development system. Microsoft Office products include VBA and make use of VBA to perform certain functions. VBA can also be used to build customized applications based around an existing host application.

What might an attacker use the vulnerability to do?
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.

How could an attacker exploit the vulnerability?
In order for an attack to be successful, a user would have to open a specially crafted document that supports VBA. This document could be any type of document that supports VBA, such as a Word document, Excel spreadsheet, or PowerPoint presentation.

In an e-mail attack scenario, an attacker could exploit the vulnerability by sending a specially-crafted Office file to the user and by convincing the user to open the file.

In a Web-based attack scenario, an attacker would have to host a Web site that contains a document that supports VBA such as an Office file that is used to attempt to exploit this vulnerability. In addition, compromised Web sites and Web sites that accept or host user-provided content could contain specially crafted content that could exploit this vulnerability. An attacker would have no way to force users to visit a specially crafted Web site. Instead, an attacker would have to convince them to visit the Web site, typically by getting them to click a link in an e-mail message or Instant Messenger message that takes them to the attacker's Web site, and then convince them to open the specially crafted Office file.

What systems are primarily at risk from the vulnerability?
Workstations and terminal servers where Microsoft Visual Basic for Applications or Microsoft Office is used are primarily at risk. Servers could be at more risk if administrators allow users 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 modifying the way that Microsoft Visual Basic for Applications searches for ActiveX Controls embedded in documents.

When this security bulletin was issued, had this vulnerability been publicly disclosed?
No. Microsoft received information about this vulnerability through responsible disclosure.

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 when this security bulletin was originally issued.

Other Information
Acknowledgments

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

NSFocus Security Team for reporting the VBE6.DLL Stack Memory Corruption Vulnerability (CVE-2010-0815)
Top of sectionTop of section
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 (May 11, 2010): Bulletin published.