Libpng库png_push_read_zTXt()函数单字节溢出漏洞
发布日期:2008-09-06
更新日期:2008-09-09
受影响系统:libpng libpng 1.2.31
libpng libpng 1.2.30 beta04
不受影响系统:libpng libpng 1.2.32 beta01
描述:
BUGTRAQ ID:
31049
CVE(CAN) ID:
CVE-2008-3964
libpng是多种应用程序所使用的解析PNG图形格式的函数库。
libpng库的pngread.c文件中的png_push_read_zTXt()函数在处理畸形PNG图形时存在单字节溢出漏洞,可能导致使用该库的应用程序崩溃。
以下是pngpread.c文件1277-1288行的png_push_read_zTXt函数中的漏洞代码:
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';
最后一行超出所分配内存末尾写出一个字节。
<*来源:Harald van Dijk
链接:
http://secunia.com/advisories/31781/
http://sourceforge.net/tracker/index.php?func=detail&aid=2095669&group_id=5624&atid=105624
*>
建议:
厂商补丁:
libpng
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://sourceforge.net/project/shownotes.php?release_id=624518浏览次数:2382
严重程度:0(网友投票)