BigDecimal 中的 DoS 漏洞
由 Urabe Shyouhei 发布于 2009 年 6 月 9 日
在 Ruby 的 BigDecimal 标准库中发现了一个拒绝服务 (DoS) 漏洞。将 BigDecimal 对象转换为 Float 数字时存在问题,这可能导致攻击者触发分段错误。
ActiveRecord 依赖于此方法,因此大多数 Rails 应用程序都受到此影响。尽管这不是一个 Rails 特有的问题。
影响
攻击者可以通过让 BigDecimal 解析一个非常大的数字来导致拒绝服务,例如
BigDecimal("9E69999999").to_s("F")
受影响的版本
1.8 系列
- 1.8.6-p368 及之前的所有版本
- 1.8.7-p160 及之前的所有版本
1.9 系列
- 所有 1.9.1 版本均不受此问题影响
解决方案
1.8 系列
请升级到 1.8.6-p369 或 ruby-1.8.7-p174。
- https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p369.tar.gz
- https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz
更新
- Ruby 1.8.7-p173 存在一个问题。如果您已经下载了它,请获取一个较新的版本。Ruby 1.8.6-p369 不存在此 bug。
近期新闻
Ruby 4.0.0 发布
我们很高兴地宣布 Ruby 4.0.0 的发布。Ruby 4.0 引入了“Ruby Box”和“ZJIT”,并增加了许多改进。
由 naruse 发布于 2025 年 12 月 25 日
Ruby 文档的全新外观
继 ruby-lang.org 重新设计之后,我们还有更多好消息来庆祝 Ruby 成立 30 周年:docs.ruby-lang.org 采用了 Aliki——RDoc 的新默认主题,焕然一新。
由 Stan Lo 发布于 2025 年 12 月 23 日
重新设计我们的网站标识
我们很高兴地宣布对我们的网站进行全面重新设计。此次更新的设计由 Akatsuka Taeko 创作。
由 Hiroshi SHIBATA 发布于 2025 年 12 月 22 日
Ruby 4.0.0 preview3 发布
我们很高兴地宣布 Ruby 4.0.0-preview3 的发布。Ruby 4.0 引入了 Ruby::Box 和“ZJIT”,并增加了许多改进。
由 naruse 发布于 2025 年 12 月 18 日