Libpng png_decompress_chunk()函数拒绝服务漏洞 CVE-2010-0205 CNNVD-201003-024

4.3 AV AC AU C I A
发布: 2010-03-03
修订: 2020-08-07

libpng是一个可对PNG图形文件实现创建、读写等操作的PNG参考库。 libpng库的png_decompress_chunk()函数在处理包含有高压缩比的辅助数据块的PNG文件时可能会消耗大量的CPU时间和内存,这种资源耗尽可能导致使用libpng库的应用挂起。 PNG格式使用高效的压缩方式来存储图形数据和辅助数据库中的一些相关数据。PNG规范没有限制块的数量,将其大小限制于2.147G(2,147,483,647字节)。类似的,规范将图形的宽度和高度限制到21亿4700万行和21亿4700万列。 由于deflate压缩方式可以非常高效的压缩仅由多次重复的单字节组成的数据流,很小的PNG文件在解压时可能会占用很大的内存,形成耗尽所有可用内存的\"解压炸弹\"。例如,对于包含有50,000行且每行都包含有100个字母Z的zTXt块,压缩后大约为17k字节,但解压后为5M,压缩比约为300:1。 Libpng库在展开压缩的zTXt、iTXt和iCCP辅助数据块时使用了低效率的内存获取方式,图形文件中所包含的大约为50k畸形iCCP块可以解压到60M,这会将浏览器挂起约20分钟,精心创建的恶意块还可能将浏览器挂起更长时间,耗尽所有可用的内存。

0%
当前有2条漏洞利用/PoC
当前有21条受影响产品信息