首页 -> 安全研究

安全研究

安全漏洞
Netscape Communicator JPEG组件HEAP溢出漏洞

发布日期:2000-07-27
更新日期:2000-07-27

受影响系统:

Mozilla Browser M15
Netscape Communicator 4.73以及更低版本
不受影响系统:

Mozilla Browser M16
Netscape Communicator 4.74
描述:

Netscape Communicator 浏览器使用了 Independent JPEG 小组的解码库来处理JPEG编码的
图像文件。 这个库函数跳过了JPEG注释部分,但浏览器使用另外的函数读取并将它们储存在内
存中。注释部分包括两个字节长的长度域,用来标明注释的长度。这个长度也包括了长度域的
长度(2个字节).因此为了确定注释的实际长度,函数会用长度域的内容减去两个字节,然后
结果再加上1个字节(用来做空字符串截断),最后的数值作为实际的长度。由于没有对长度域的
内容作检查,如果将这个值设为一,减2之后会得到一个负值,然而实际储存结果的变量是个无符
号数,这导致结果变成一个很大的数。JPEG处理函数会根据这个结果循环读取JPEG注释的内容到
内存中,然而由于注释的长度现在变成一个很大的数值,处理函数可能会将整个JPEG文件的内容
都读到内存中去,覆盖掉HEAP内存的内容。理论上攻击者是可能利用这个漏洞执行任意代码的,
尽管实现起来并不容易。

<* 来源: Solar Designer <solar@false.com>
         http://www.openwall.com/advisories/
*>


测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!


Solar Designer在其站点上提供了测试用的JPEG图片:

http://www.openwall.com/advisories/OW-002-netscape-jpeg-r1.tar.gz
http://www.openwall.com/advisories/OW-002-1.zip



建议:
升级到Netscape Communicator 4.74 和 Mozilla M16

针对Mozilla M15的补丁程序:

- --- mozilla/modules/libimg/jpgcom/jpeg.cpp.orig    Tue Mar 28 02:08:15 2000
+++ mozilla/modules/libimg/jpgcom/jpeg.cpp    Wed May 24 17:24:03 2000
@@ -469,6 +469,10 @@

     /* Get 16-bit comment length word. */
     INPUT_2BYTES(cinfo, length, return FALSE);
+    if (length < 2) {
+    cinfo->err->msg_code = JERR_BAD_LENGTH;
+    il_error_exit((j_common_ptr)cinfo);
+    }
     length -= 2;            /* discount the length word itself */

     PR_FREEIF(ic->comment);

浏览次数:6184
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障