From: Steve G <linux_4ever> In the png_format_buffer function located in pngerror.c around line 133 is the following code: if (message == NULL) buffer[iout] = 0; else { buffer[iout++] = ':'; buffer[iout++] = ' '; png_memcpy(buffer+iout, message, 64); buffer[iout+63] = 0; } This code is called from the png_chunk_error & png_chunk_warning functions. An example of their use would be in pngutil.c around line 119. png_chunk_error(png_ptr, "CRC error"); In the above code, the message being constructed is only 10 characters long. The png_memcpy function will unconditionally access 54 bytes beyond the message. This could cause a carefully crafted png image to cause a denial of service. Possibly embargoed; marking as embargoed until communicated otherwise.
*** Bug 120508 has been marked as a duplicate of this bug. ***
removing embargo
An errata has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2004-180.html