Mozilla Firefox cairo_dwrite_font_face Memory Corruption Vulnerability
Mozilla Firefox is a free web browser based on the Gecko rendering engine.
Remote exploitation of a memory corruption vulnerability in the Mozilla Foundation's Firefox could allow an attacker to execute arbitrary code with the privileges of the current user.
The vulnerability occurs during the processing of specific font arguments. Specifically, under certain circumstances, Firefox fails to properly initialize an object. The object's memory contains random contents that are remaining or previously used. When the object is later accessed, this random memory is treated as a valid object and the object's vtable is used to make an indirect function call. This may result in the execution of arbitrary code.
Exploitation of this vulnerability results in the execution of arbitrary code with the privileges of the user viewing the Web page. To exploit this vulnerability, a targeted user must load a malicious Web page that an attacker created. An attacker typically accomplishes this via social engineering or injecting content into compromised, trusted sites. After the user visits the malicious Web page, no further user interaction is needed.
To exploit this vulnerability, an attacker needs to be able to control the area of memory that is unintialized and used for the object. An attacker has several methods of doing this via reallocating it or by heap spraying.
The following Mozilla products are vulnerable:
- Firefox prior to 12.0
- Firefox ESR prior to 10.0.4
- Thunderbird prior to 12.0
- Thunderbird ESR prior to 10.0.4
- SeaMonkey prior to 2.9
None of the following workarounds will prevent exploitation, but they can reduce the number of potential attack vectors and make exploitation more difficult:
- Use the Microsoft EMET tool to run Firefox
- Follow best practice methodologies by avoiding opening files from untrusted or unsolicited sources
The Mozilla Foundation has released patches which address this issue. For more information, consult their advisory at the following URL:
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2012-0472 to this issue. This is a candidate for inclusion in the CVE list (http://cve.mitre.org/), which standardizes names for security problems.
04/11/2012 Initial Vendor Notification
04/24/2012 Coordinated Public Disclosure
This vulnerability was reported to iDefense by wushi of team509.
Get paid for vulnerability research
Free tools, research and upcoming events
Copyright © 2012 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.