Date: Wed, 4 Aug 2004 13:48:22 -0400
From: CERT Advisory <[email protected]>
To: [email protected]Subject: US-CERT Technical Cyber Security Alert TA04-217A -- Multiple Vulnerabilities in libpng
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Multiple Vulnerabilities in libpng
Original release date: August 4, 2004
Last revised: --
Source: US-CERT
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.
I. 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)
II. 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.
III. 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
* Chris Evans Security Advisory 2004.1 -
<http://scary.beasts.org/security/CESA-2004-001.txt>
* libpng Homepage - <http://libpng.sourceforge.net>
* Portable Network Graphics (PNG) Homepage -
<http://www.libpng.org/pub/png>
* US-CERT Vulnerability Note VU#388984 -
<http://www.kb.cert.org/vuls/id/388984>
* US-CERT Vulnerability Note VU#817368 -
<http://www.kb.cert.org/vuls/id/817368>
* US-CERT Vulnerability Note VU#286464 -
<http://www.kb.cert.org/vuls/id/286484>
* US-CERT Vulnerability Note VU#477512 -
<http://www.kb.cert.org/vuls/id/477512>
* US-CERT Vulnerability Note VU#160448 -
<http://www.kb.cert.org/vuls/id/160448>
* US-CERT Vulnerability Note VU#236656 -
<http://www.kb.cert.org/vuls/id/236656>
* CVE CAN-2004-0597 -
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0597>
* CVE CAN-2004-0598 -
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0598>
* CVE CAN-2004-0599 -
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0599>
_________________________________________________________________
US-CERT thanks Chris Evans for researching and reporting these
vulnerabilities.
_________________________________________________________________
Feedback can be directed to the US-CERT Technical Staff.
_________________________________________________________________
The latest copy of this document can be found at:
<http://www.us-cert.gov/cas/techalerts/TA04-217A.html>
Copyright 2004 Carnegie Mellon University. Terms of use
Revision History
Aug 4, 2004: Initial release
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQFBER8VXlvNRxAkFWARAtSFAKCGG0ALkKpzC3fhY3jlGZQDyzN5TgCg9g9c
lQD3Z5OoJ30TQenb8/lwjn0=
=d+t3
-----END PGP SIGNATURE-----