欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

BigDecimal中的DoS攻击漏洞

程序员文章站 2024-01-12 09:38:16
...
一个新的拒绝服务( 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/)翻译。