拼吾爱程序人生

首页 » 其他编程 » Ruby & Python » REXML发现严重DoS攻击漏洞──可通过动态补丁来修正
cobra - 2008-8-29 13:00:00
XML实体会引起 REXML中一种新的DoS攻击。定义并使用递归嵌套实体的文档会造成实体的过度膨胀(escessive espansion),最终导致应用程序的瘫痪。

Rails的这个问题尤为明显,因为它是通过REXML解析进来的XML请求。因为这种情况默认就会发生,并且根据请求的文档类型儿有所差异,所以这种攻击对所有Rails应用都是一种威胁,除非那些应用禁用了自动处理用户XML的功能。

现在,所有1.86-p287、1.97-p72和1.9.x版本的Ruby都会存在这个问题。对当前的JRuby 1.1.x版本做了一个小测试,用它来解析某个XML文档样本,结果抛出了OutOfMemoryError错误。(注意:这个问题只有在实体扩张时才会被触发,普通的解析是不会产生任何问题的──必须在能读取包含实体的文本节点时候才会发生这个问题)。

在未给REXML打补丁之前,是通过给REXML模块中的文档和实体类打动态补丁来弥补这个漏洞的。这个补丁主要是限制(此限制是可调的)了膨胀实体的数量,当超过了这个数量,则会抛出一个异常。

此漏洞的安全说明页面介绍了如何打补丁,从而确保不同版本的Rails都适用。



(文/Werner Schuster  译/刘申 出处/Infoq)

 您可能对 [Ruby & Python] 的这些文章也感兴趣:

Sun,请停止支持JRuby
JRuby 1.1.4发布
【翻译】Programming Ruby——数组,哈希表和控制结构
Ruby/Rails: 不一样的'Web'应用
Python和Django的详细安装步骤
JRuby综述: 可用的RCov、支持Hibernate的Ribs及解析器统计
Ruby进展近况:Ruby 1.9.0-5发布、JRuby跳过1.8.7、用于Case测试的Procs
【翻译】Programming Ruby——类,对象,继承和消息
编译的IronPython
RubyEncoder:Ruby混淆器和代码保护
1
查看完整版本: REXML发现严重DoS攻击漏洞──可通过动态补丁来修正
Modify by pin5i DZNT_ExpandPackage 2.1.3258 2007-2008 pin5i.com
  Total Unique Visitors: