安全研究

安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障