BUGTRAQ ID: 31049 CNCAN ID:CNCAN-2008090903 Libpng是一款多种应用程序所使用的解析PNG图形格式的函数库。 Libpng png_push_read_zTXt()存在单字节错误,远程攻击者可以利用漏洞对链接此库的应用程序进行拒绝服务攻击。 问题代码存在于png_push_read_zTXt (libpng-1.2.31/pngpread.c:1277-1288): png_charp tmp; tmp = text; text = (png_charp)png_malloc(png_ptr, text_size + (png_uint_32)(png_ptr->zbuf_size - png_ptr->zstream.avail_out)); png_memcpy(text, tmp, text_size); png_free(png_ptr, tmp); png_memcpy(text + text_size, png_ptr->zbuf, png_ptr->zbuf_size - png_ptr->zstream.avail_out); text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out; *(text + text_size) = '\0'; 最后一行写的一个字节超越了分配内存的末端,可导致应用程序崩溃。 构建恶意的PNG文件,诱使用户解析,可触发此漏洞。 0 libpng libpng3 1.2.31 libpng libpng3 1.2.30 beta04 升级到libpng 1.2.32 beta01: <a href=http://sourceforge.net/project/shownotes.php?release_id=624518 target=_blank>http://sourceforge.net/project/shownotes.php?release_id=624518</a>
BUGTRAQ ID: 31049 CNCAN ID:CNCAN-2008090903 Libpng是一款多种应用程序所使用的解析PNG图形格式的函数库。 Libpng png_push_read_zTXt()存在单字节错误,远程攻击者可以利用漏洞对链接此库的应用程序进行拒绝服务攻击。 问题代码存在于png_push_read_zTXt (libpng-1.2.31/pngpread.c:1277-1288): png_charp tmp; tmp = text; text = (png_charp)png_malloc(png_ptr, text_size + (png_uint_32)(png_ptr->zbuf_size - png_ptr->zstream.avail_out)); png_memcpy(text, tmp, text_size); png_free(png_ptr, tmp); png_memcpy(text + text_size, png_ptr->zbuf, png_ptr->zbuf_size - png_ptr->zstream.avail_out); text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out; *(text + text_size) = '\0'; 最后一行写的一个字节超越了分配内存的末端,可导致应用程序崩溃。 构建恶意的PNG文件,诱使用户解析,可触发此漏洞。 0 libpng libpng3 1.2.31 libpng libpng3 1.2.30 beta04 升级到libpng 1.2.32 beta01: <a href=http://sourceforge.net/project/shownotes.php?release_id=624518 target=_blank>http://sourceforge.net/project/shownotes.php?release_id=624518</a>