Bugzilla – Bug 856522
VUL-0: CVE-2013-6954: libpng: unhandled zero-length PLTE chunk or NULL palette
Last modified: 2015-02-19 01:35:54 UTC
Handle zero-length PLTE chunk or NULL palette with png_error() instead of png_chunk_report(), which by default issues a warning rather than an error, leading to later reading from a NULL pointer (png_ptr->palette) in png_do_expand_palette(). references: http://sourceforge.net/projects/libpng/files/libpng16/1.6.8/Gnupg/
bugbot adjusting priority
Fix: http://sourceforge.net/p/libpng/code/ci/1faa6ff32c648acfe3cf30a58d31d7aebc24968c
Do we have any testcase?
Or better testcases, as there are two fixes.
I could not find testcases, exploit or PoC. :/
libpng 12 and lipbng 15 are *not* affected.
Factory has 1.6.8, thus fixed.
What remains is libpng 1.6.6 in 13.1.
There: alef:/856522> gcc -o rpng-plte rpng-plte.c -lpng alef:/856522> gdb rpng-plte (gdb) run libpng warning: PLTE: Invalid palette 10x10 colortype: 3 bitdepth: 8 Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7bbc74f in png_do_expand_palette (row_info=row_info@entry=0x7fffffffe660, row=<optimized out>, palette=0x0, trans_alpha=0x0, num_trans=<optimized out>) at pngrtran.c:4675 4675 *dp-- = palette[*sp].blue; (gdb) p palette $1 = (const png_color *) 0x0 After fix: alef:/856522> ./rpng-plte libpng error: Invalid palette
fixed
openSUSE-SU-2014:0100-1: An update that fixes one vulnerability is now available. Category: security (moderate) Bug References: 856522 CVE References: CVE-2013-6954 Sources used: openSUSE 13.1 (src): libpng16-1.6.6-8.1