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

2007-07-11T00:00:00
ID SSV:1981
Type seebug
Reporter Root
Modified 2007-07-11T00:00:00

Description

BUGTRAQ ID: 24798

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

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

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

Sun JRE <= 6 Update 1 Sun JRE <= 5.0 Update 11

临时解决方法:

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

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

厂商补丁:

Sun

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

<a href="http://java.sun.com/javase/downloads/index_jdk5.jsp" target="_blank">http://java.sun.com/javase/downloads/index_jdk5.jsp</a> <a href="http://java.sun.com/javase/downloads/index.jsp" target="_blank">http://java.sun.com/javase/downloads/index.jsp</a>