安全研究

安全漏洞
Sun Java运行时环境WebStart JNLP文件处理栈溢出漏洞

发布日期:2007-07-06
更新日期:2007-07-10

受影响系统:
Sun JRE <= 6 Update 1
Sun JRE <= 5.0 Update 11
不受影响系统:
Sun JRE 6 Update 2
Sun JRE 5.0 Update 12
描述:
BUGTRAQ  ID: 24832
CVE(CAN) ID: CVE-2007-3655

Java WebStart是用于简化在客户端部署Java应用程序的技术。

Java WebStart在处理畸形格式的JNLP文档时存在漏洞,攻击者可能利用此漏洞通过诱使用户打开处理恶意文件控制用户系统。

Java WebStart中的javaws.exe负责从JNLP文件中获得下载指令。JNLP文件中的jnlp单元包含有codebase属性,在之后的操作中通过sprintf将该属性拷贝到了1K的缓冲区,但拷贝时还附加了到用户临时目录的路径。由于在sprintf之前没有验证长度,因此可以通过恶意codebase输入触发栈溢出。对输入唯一的限制是任何多字节字符都会被转换为0xFF,因此仅允许0x01到0x7F的字符。

<*来源:Daniel Soeder
  
  链接:http://marc.info/?l=bugtraq&m=118416265515218&w=2
        http://secunia.com/advisories/25981/
        http://research.eeye.com/html/advisories/published/AD20070705.html
        http://sunsolve.sun.com/search/printfriendly.do?assetkey=1-26-102996-1
*>

测试方法:

警 告

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

http://www.milw0rm.com/exploits/4168

建议:
临时解决方法:

* 从注册表中删除.jnlp内容类型关联:

- HKLM:Software\Classes\.jnlp
- HKLM:Software\Classes\JNLPfile
- HKLM:Sofrware\Classes\MIME\Database\Content Type\application/x-java-jnlp-file

* 临时禁用Java Web Start应用程序:

   对于Internet Explorer:

   1. 右击“开始”键然后选择“资源管理器”
   2. 在“开始菜单”窗口中,选择“工具” => “文件夹选项”
   3. 从“文件夹选项”窗口中选择“文件类型”标签
   4. 从“已注册的文件类型”窗口中下拉锁定“JNL - JNLP File”
   5. 选择“JNLP - JNLP File”然后点击“删除”键

   对于Mozilla:

   1. 从“编辑”菜单中打开“首选项”对话框
   2. 在“首选项”窗口中选择“浏览器”类下的“助手应用程序”
   3. 在“文件类型”下,下拉锁定application/x-java-jnlp-file
   4. 选择application/x-java-jnlp-file然后点击“删除”键

厂商补丁:

Sun
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://java.sun.com/javase/downloads/index_jdk5.jsp
http://java.sun.com/javase/downloads/index.jsp

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