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>
暂无评论