BUGTRAQ ID: 33827 libpng是多种应用程序所使用的解析PNG图形格式的函数库。 如果应用程序耗尽内存的话,libpng库在释放数组单元之前没有正确的初始化某些指针数组,这可能导致内存破坏。 在malloc包含有N个单元的数组时: for (i=0; i<N; i++) malloc element[i]; 如果应用程序在循环期间耗尽了内存的话,就不会初始化一些单元指针,之后Libpng会跳转到一个试图释放数组中所有单元(包括未初始化的区)的cleanup进程。 libpng库存在5种出现bug的情况。一种在png_read_png()函数中,仅有明确调用png_read_png()的应用才受影响;另一种情况为pCAL块处理器,任何没有禁止通过调用set_keep_unknown_chunks()来处理pCAL块的应用都受影响;其他三种情况为创建16位gamma表的代码,即使使用png_set_strip_16()将16位输入降为8位所有的应用块也都受这三种情况的影响,这是由libpng执行转换的次序决定的。 0 libpng libpng 1.2.x libpng libpng 1.0.x 厂商补丁: libpng ------ 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: <a href=http://libpng.sourceforge.net/ target=_blank rel=external nofollow>http://libpng.sourceforge.net/</a>
BUGTRAQ ID: 33827 libpng是多种应用程序所使用的解析PNG图形格式的函数库。 如果应用程序耗尽内存的话,libpng库在释放数组单元之前没有正确的初始化某些指针数组,这可能导致内存破坏。 在malloc包含有N个单元的数组时: for (i=0; i<N; i++) malloc element[i]; 如果应用程序在循环期间耗尽了内存的话,就不会初始化一些单元指针,之后Libpng会跳转到一个试图释放数组中所有单元(包括未初始化的区)的cleanup进程。 libpng库存在5种出现bug的情况。一种在png_read_png()函数中,仅有明确调用png_read_png()的应用才受影响;另一种情况为pCAL块处理器,任何没有禁止通过调用set_keep_unknown_chunks()来处理pCAL块的应用都受影响;其他三种情况为创建16位gamma表的代码,即使使用png_set_strip_16()将16位输入降为8位所有的应用块也都受这三种情况的影响,这是由libpng执行转换的次序决定的。 0 libpng libpng 1.2.x libpng libpng 1.0.x 厂商补丁: libpng ------ 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: <a href=http://libpng.sourceforge.net/ target=_blank rel=external nofollow>http://libpng.sourceforge.net/</a>