BigDecimal中的DoS攻击漏洞

一个新的拒绝服务( DoS )漏洞已被发现,影响所有版本的Ruby 1.8.x :
转换BigDecima对象到Float数时出现了问题,使攻击者能够有效地产生段故障。

ActiveRecord依赖于这种方法,因此大多数Rails的应用受到此问题的影响。虽然这不是一个Rails的特殊问题。

Riding Rails博客还指出这一脆弱性:
即将发布的Rails的2.3.3版本将包括一些细微的变化,以减少一些潜在的攻击者利用此漏洞。不过,这些缓解措施也不能解决每一个潜在的攻击方法,用户仍应尽快升级他们的Ruby版本。
该博客还提到NZKoz 的 bigdecimal - segfault修复方案,给那些不能立即升级他们的Ruby安装版本的用户的一个临时的解决方案-虽然升级是 唯一 正确的解决方案 , 但此修复程序可能中断应用服务。

所有的Ruby 1.8.x 版本都受此 影响 - 第一次修复版本 的Ruby是 { ( 1.8.6 FTP下载链接) 和 Ruby 1.8.7 - p173 ( 1.8.7 FTP下载链接) 。

JRuby 似乎也受到影响。Bug JRUBY-3744跟踪了这个问题,并说:
JRuby似乎受到影响。它没有崩溃,但似乎是停留在一个无限循环。
这一行为已由本示例输出文档化 。
快速试验表明 , 该解决方案中使用bigdecimal - segfault修复工程作为一个 临时的 解决办法,在JRuby也可以工作 ,因为它只是打开了BigDecimal类和修改它以在使用了一个过大的数字的情况下抛出一个异常。以使代码立即失败,而不是保持JRuby线程繁忙;显然这种方法中断了那些需要处理大于补丁设定的默认数字的代码。

Ruby1.9.x用户不会受到这一问题的影响。
 
=====
以上内容由google翻译辅助工具(http://translate.google.com/toolkit/)翻译。

你可能感兴趣的:(dos,Google,Ruby,Rails,jruby)