U.S. Flag Official website of the Department of Homeland Security

Note: This page is part of the us-cert.gov archive.This document is part of the US-CERT website archive. These documents are no longer updated and may contain outdated information. Links may also no longer function. Please contact info@us-cert.gov if you have any questions about the US-CERT website archive.

TLP:WHITE

Alert (TA04-217A)

Multiple Vulnerabilities in libpng

Original release date: August 04, 2004

Systems Affected

Applications and systems that use the libpng library.

Overview

Several vulnerabilities exist in the libpng library, the most serious of which could allow a remote attacker to execute arbitrary code on an affected system.

Description

The Portable Network Graphics (PNG) image format is used as an alternative to other image formats such as the Graphics Interchange Format (GIF). The libpng is a popular reference library available for application developers to support the PNG image format.

Several vulnerabilities have been reported in the libpng library. Any application or system that uses this library may be affected. More detailed information is available in the individual vulnerability notes:

VU#388984 - libpng fails to properly check length of transparency chunk (tRNS) data

A buffer overflow vulnerability has been discovered in the way that libpng processes PNG images. This vulnerability could allow a remote attacker to execute arbitrary code on a vulnerable system by introducing a specially crafted PNG image.
(Other references: CAN-2004-0597)

VU#236656 - libpng png_handle_iCCP() NULL pointer dereference

Under some circumstances, a null pointer may be dereferenced during a memory allocation in the png_handle_iCCP() function. As a result, a PNG image with particular characteristics could cause the affected application to crash. Similar errors are reported to exist in other locations within libpng.
(Other references: CAN-2004-0598)

VU#160448 - libpng integer overflow in image height processing

An integer overflow error exists in the handling of PNG image height within the png_read_png() function. As a result, a PNG image with excessive height may cause an integer overflow during a memory allocation operation, which could cause the affected application to crash.
(Other references: CAN-2004-0599)

VU#477512 - libpng png_handle_sPLT() integer overflow

A potential integer overflow error exists during a memory allocation operation within the png_handle_sPLT() function. It is unclear what practical impact this error might have on applications using libpng.
(Other references: CAN-2004-0599)

VU#817368 - libpng png_handle_sBIT() performs insufficient bounds checking

A potentially insufficient bounds check exists within the png_handle_sBIT() function. A similar error exists in the png_handle_hIST() function. While the code that contains these errors could potentially permit a buffer overflow to occur during a subsequent png_crc_read() operation, it is unclear what practical vulnerabilities it might present in applications using libpng.
(Other references: CAN-2004-0597)

VU#286464 - libpng contains integer overflows in progressive display image reading

The libpng library provides the ability to display interlaced, or progressive display, PNG images. A number of potential integer overflow errors exist in libpng's handling of such progressive display images. While the code that contains these errors introduces dangerous conditions, it is unclear what practical vulnerabilities it might present in applications using libpng.
(Other references: CAN-2004-0599)

Impact

In the case of VU#388984, an attacker with the ability to introduce a malformed PNG image to a vulnerable application could cause the application to crash or could potentially execute arbitrary code with the privileges of the user running the affected application.

In the case of VU#236656 and VU#160448, an attacker with the ability to introduce a malformed PNG image to a vulnerable application could cause the application to crash.

The impacts of the other vulnerabilities described above are unclear.

A remote attacker could cause an application to crash or potentially execute arbitrary code by convincing a victim user to visit a malicious web site or view an email message containing a malformed image.

Solution

Apply a patch or upgrade

Apply the appropriate patch or upgrade as specified by your vendor. For vendor-specific responses, please see your vendor's web site or the individual vulnerability notes.

For individuals who rely on the original source of libpng, these issues have been resolved in libpng version 1.2.6rc1 (release candidate 1).

Appendix A. References



US-CERT thanks Chris Evans for researching and reporting these vulnerabilities.


Feedback can be directed to the US-CERT Technical Staff.


Revision History

  • Aug 4, 2004: Initial release

    Last updated

This product is provided subject to this Notification and this Privacy & Use policy.

Was this document helpful?  Yes  |  Somewhat  |  No

Back to Top