// back

Microsoft Visual Basic for Applications - Multiple Vulnerabilities

14.10.08

BACKGROUND

Microsoft VBA is an implementation of Microsoft Visual Basic programming language for developing client desktop packaged applications and integrating them with existing data and systems. VBA is a built in feature in Microsoft Office. For more information, please visit following webpage:

http://msdn.microsoft.com/en-us/isv/bb190538.aspx

DESCRIPTION

Several vulnerabilities exist in Microsoft Corp.'s Office Visual Basic for Applications (VBA) which could allow remote exploitation by an attacker. Exploitation could allow the execution of arbitrary code with the privileges of the current user.

The types of vulnerabilities include heap overflows, memory corruption, invalid array indexing, and integer overflow.

These vulnerabilities exist in the handling of an object embedded in an Office document. When processing this object, the VBA module does not validate any of several values correctly. By crafting an object that contains a specific value, corruption can be caused. This leads to a potentially exploitable condition.

ANALYSIS

Exploitation allows an attacker to execute arbitrary code in the context of the currently logged-on user. To exploit this vulnerability, the attacker must persuade a user to open a specially crafted Office document.

Likely attack vectors include sending the file as an e-mail attachment or linking to the file on a website. By default, systems with Office 2000 installed will open Office documents from websites without prompting the user. This allows attackers to exploit this vulnerability without user interaction. Later versions of Office do not open these documents automatically unless the user has chosen this behavior.

Using the Office Document Open Confirmation Tool for Office 2000 can prevent Office files from opening automatically from websites. Use of this tool is highly recommended for users still using Office 2000.

Generally one needs to set Macro security Level to Medium to run VBA Macros, but that's not applicable for this vulnerability. This vulnerability can be exploited with the default High Macro Security Level.

DETECTION

iDefense confirmed the existence of these vulnerabilities in the following versions of Microsoft Excel: 2000-SP3, XP-SP3, 2003-SP3. Excel 2007 and 2007-SP1 were not vulnerable.

WORKAROUND

Restrict access to VBE6.dll by executing Echo y|cacls "%ProgramFiles%common filesmicrosoft sharedvbavba6vbe6.dll" /E /P everyone:N

Impact of workaround: Office file with VBA content can't be loaded.

VENDOR RESPONSE

Microsoft has officially addressed this vulnerability with Security Bulletin MS08-057. For more information, consult their bulletin at the following URL.

http://www.microsoft.com/technet/security/bulletin/ms08-057.mspx

CVE INFORMATION

The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2008-3477 to this issue. This is a candidate for inclusion in the CVE list (http://cve.mitre.org/), which standardizes names for security problems.

DISCLOSURE TIMELINE

04/17/2007 Initial vendor notification for earliest vulnerability
04/18/2007 Initial vendor response
10/14/2008 Coordinated public disclosure

CREDIT

The heap buffer overflow vulnerability was independently discovered by Lionel d'Hauenens of Laboskopia (reported through iDefense VCP program) and Jun Mao of iDefense Labs.

The discoverer of the remaining vulnerabilities wishes to remain anonymous.

Get paid for vulnerability research
http://labs.idefense.com/methodology/vulnerability/vcp.php

Free tools, research and upcoming events
http://labs.idefense.com/

LEGAL NOTICES

Copyright © 2008 Verisign, Inc.

Permission is granted for the redistribution of this alert electronically. It may not be edited in any way without the express written consent of iDefense. If you wish to reprint the whole or any part of this alert in any other medium other than electronically, please e-mail customer service for permission.

Disclaimer: The information in the advisory is believed to be accurate at the time of publishing based on currently available information. Use of the information constitutes acceptance for use in an AS IS condition. There are no warranties with regard to this information. Neither the author nor the publisher accepts any liability for any direct, indirect, or consequential loss or damage arising from use of, or reliance on, this information.