Mikulas Patocka
2012-Apr-08 18:01 UTC
[Secure-testing-team] Bug#668082: libpng12-0: libpng-1.2.44 crashes with electric fence memory debugger
Package: libpng12-0 Version: 1.2.44-1+squeeze4 Severity: grave Tags: security Justification: user security hole Debian libpng crashes when loading corruted image, I placed the image here: http://artax.karlin.mff.cuni.cz/~mikulas/debian-libtiff-bug/debian- libpng-1.2.44-crash.png How to reproduce: install links2 and electric-fence package run: LD_PRELOAD=/usr/lib/libefence.so EF_ALIGNMENT=0 links2 -g http://artax.karlin.mff.cuni.cz/~mikulas/debian-libtiff-bug/debian- libpng-1.2.44-crash.png You get a crash in inflate. I tried it on upstream libpng, upstream versions up to 1.2.47 crash. 1.2.48 and 1.2.49 dont'' crash. A backtrace of the upstream crash: Program terminated with signal 11, Segmentation fault. #0 0x00007fd202b4338f in inflate (strm=0x7fd1fe3c7c40, flush=1) at inflate.c:649 649 NEEDBITS(16); (gdb) bt #0 0x00007fd202b4338f in inflate (strm=0x7fd1fe3c7c40, flush=1) at inflate.c:649 #1 0x00007fd2029304de in png_push_read_zTXt (png_ptr=0x7fd1fe3c7b10, info_ptr=0x7fd1fe3cfe30) at pngpread.c:1405 #2 0x00007fd20292d7d0 in png_process_some_data (png_ptr=0x7fd1fe3c7b10, info_ptr=0x7fd1fe3cfe30) at pngpread.c:85 #3 0x00007fd20292d70a in png_process_data (png_ptr=0x7fd1fe3c7b10, info_ptr=0x7fd1fe3cfe30, buffer=0x7fd1fe976d03 "\211PNG\r\n\032\n", buffer_size=757) at pngpread.c:41 (gdb) frame 1 #1 0x00007fd2029304de in png_push_read_zTXt (png_ptr=0x7fd1fe3c7b10, info_ptr=0x7fd1fe3cfe30) at pngpread.c:1405 1405 ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH); (gdb) print png_ptr->zstream $1 = {next_in = 0x7fd1fe3d4000 "", avail_in = 4294967295, total_in = 0, next_out = 0x7fd1fe3c9000 "Copyright Willem van Schaik, Singapore 1995", avail_out = 8192, total_out = 0, msg = 0x0, state = 0x7fd1fe3cc410, zalloc = 0x7fd20290884d <png_zalloc>, zfree = 0x7fd20290891a <png_zfree>, opaque = 0x7fd1fe3c7b10, data_type = 64, adler = 1, reserved = 0} The crash is caused by libpng filling too big value to "avail_in" field. This bug is already fixed in libpng-1.2.48 (the buggy function png_push_read_zTXt is removed), but Debian didn''t backport the fix. -- System Information: Debian Release: 6.0.4 APT prefers stable APT policy: (500, ''stable'') Architecture: amd64 (x86_64) Kernel: Linux 3.3.0 (SMP w/8 CPU cores; PREEMPT) Locale: LANG=cs_CZ, LC_CTYPE=cs_CZ (charmap=ISO-8859-2) Shell: /bin/sh linked to /bin/dash Versions of packages libpng12-0 depends on: ii libc6 2.11.3-2 Embedded GNU C Library: Shared lib ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime libpng12-0 recommends no packages. libpng12-0 suggests no packages. -- no debconf information -------------- next part -------------- A non-text attachment was scrubbed... Name: file.png Type: image/png Size: 757 bytes Desc: not available URL: <http://lists.alioth.debian.org/pipermail/secure-testing-team/attachments/20120408/89bbd5ff/attachment.png>