Java JNDI/DNS远程拒绝服务漏洞

2008-04-10 03:02:55来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

Java JNDI/DNS远程拒绝服务漏洞

发布日期:2004-11-08
更新日期:2004-11-09

受影响系统:
Sun JRE 1.5.0
Sun JRE 1.4.2
描述:
BUGTRAQ ID: 11619
CVE(CAN) ID: CVE-2004-1503

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

Java在实现DNS解析时存在问题,远程攻击者可以利用这个漏洞使目标应用程序消耗大量资源造成拒绝服务。

Java使用'InitialDirContext'执行DNS查询,在com/sun/jndi/dns/DnsClient.java中,'xid'类型是'int',但是由'short'类型的'ident'初始化,因此如果'ident'到达32768时就会变负,而使的'xid'值为'-32768':

~ private short ident = 0; // used to set the msg ID field
[...]
int xid;
synchronized (identLock) {
xid = ident;
}

在类com/sun/jndi/dns/Header.java中,来自DNS服务器的应答函数中,转换时使用'int'类型代替了'short':

~ private static int getShort(byte[] msg, int pos) {
return (((msg[pos] & 0xFF) << 8) |
(msg[pos 1] & 0xFF));
~ }


结果导致'32768'不等于'-32768'而出现异常,因此如果攻击者执行多个DNS查询到达32768个请求时,可造成应用程序产生拒绝服务。

<*来源:Kurt Huwig (k.huwig@iku-ag.de)

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=109994063331773&w=2
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 重写应用程序在32768请求达到时使用新的InitialDirContext。

厂商补丁:

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

http://sunsolve.sun.com/security

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ISC DHCP DNS记录格式串任意指令执行漏洞

下一篇:Kerio Personal Firewall未明包处理远程拒绝服务漏洞