iDefense Security Advisory 03.24.09: Adobe Reader and Acrobat JBIG2 Encoded Stream Heap Overflow Vulnerability



iDefense Security Advisory 03.24.09
http://labs.idefense.com/intelligence/vulnerabilities/
Mar 24, 2009

I. BACKGROUND

Adobe Acrobat Reader/Acrobat are programs for viewing and editing
Portable Document Format (PDF) documents. For more information, see the
vendor's site found at the following link.

http://www.adobe.com/products/reader/
http://www.adobe.com/products/acrobatpro/

II. DESCRIPTION

Remote exploitation of a heap based buffer overflow vulnerability in
Adobe Systems Inc.'s Reader and Acrobat could allow an attacker to
execute arbitrary code with the privileges of the current user.

The vulnerability occurs when parsing a JBIG2-encoded stream inside of a
PDF file. JBIG2 is an image encoding format that is primarily used for
encoding monochrome images such as faxes.

When parsing the contents of a JBIG2 stream, a 32-bit value that
represents the number of values in a table is used to allocate a heap
buffer. This buffer is then filled with values from the file, without
properly checking the bounds of the buffer. This leads to a heap based
buffer overflow that can result in arbitrary code execution.

III. ANALYSIS

Exploitation of this vulnerability allows the attacker to execute
arbitrary code with the privileges of the user opening the file. The
attacker will have to create a malicious PDF file and convince the
victim to open it. This can be accomplished by embedding the PDF file
into an iframe inside of a Web page, which will result in automatic
exploitation once the page is viewed. The file could also be e-mailed
as an attachment or placed on a file share. In these cases, a user
would have to manually open the file to trigger exploitation.

Typically, heap based buffer overflows can be difficult to exploit due
to modern heap implementations that perform heap integrity checks.
However, Abode Reader and Acrobat use a custom heap allocator which can
be abused to write arbitrary values to arbitrary locations. Labs testing
has demonstrated this vulnerability is highly exploitable.

JavaScript is not required to exploit this vulnerability, however, it
does make exploitation simpler.

IV. DETECTION

Acrobat Reader and Acrobat Professional versions 7.1.0, 8.1.3, 9.0.0 and
prior versions are vulnerable.

V. WORKAROUND

None of the following workarounds will prevent exploitation, but they
can reduce potential attack vectors and make exploitation more
difficult.

Prevent PDF documents from being opened automatically by the Web browser.
Disable JavaScript in the vulnerable products.
Follow best practice methodologies by avoiding opening files from
untrusted or unsolicited sources.
Deploy DEP (Data Execution Prevention).

VI. VENDOR RESPONSE

Adobe has released a patch which addresses this issue. For more
information, consult their advisory (APSB09-04) at the following URL:

http://www.adobe.com/support/security/bulletins/apsb09-04.html

VII. CVE INFORMATION

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

VIII. DISCLOSURE TIMELINE

02/24/2009 - Initial Contact
02/24/2009 - Initial Response
02/24/2009 - PoC Requested
02/25/2009 - PoC Sent
03/06/2009 - Status update received - proposed release date of 03/18/2009
03/17/2009 - Vendor proposes new release date of 03/24/2009
03/24/2009 - Coordinated public disclosure

IX. CREDIT

This vulnerability was discovered by Sean Larsson, iDefense Labs.

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

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

X. LEGAL NOTICES

Copyright © 2009 iDefense, 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 customerservice@xxxxxxxxxxxx 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.