写点什么

Ruby 1.8.x 中 BigDecimal 的 Dos 漏洞

  • 2009-06-14
  • 本文字数:639 字

    阅读完需:约 2 分钟

Ruby 1.8.x 的所有版本中发现了一个易被 DoS 攻击的漏洞:

将 BigDecimal 对象转换成 Float 数的时候会导致一个问题,这个问题使得攻击者能够很容易得到段错误。
由于 ActiveRecord 即依赖于这个方法,所以大多数 Rails 应用程序都会被影响到。虽然这个并不只是 Rails 的问题。

Riding Rails 博客也指出了这个漏洞

即将发布的 Rails 2.3.3 将会有一些小改动,减少了一些这个漏洞中可能被攻击的 vectors 数量。但是这些改动不会关闭每一个可能遭受攻击的方法,用户仍然需要不断尽快升级升级他们的 Ruby 安装程序。

这篇博文同样指向了了 NZkoz 的 bigdecimal-segfault-fix,无法升级 Ruby 的用户的一个临时修复方法这篇文章,这也是一个解决办法,但是这个修正版本可能会破坏应用程序,所以升级是唯一一个合适的解决方法。

所有的 Ruby 1.8.x 版本都被影响了,第一个修正的 Ruby 版本Ruby 1.8.6-p369 1.8.6 FTP 下载链接)和Ruby 1.8.7-p173 1.8.7 FTP 下载链接)。

JRuby貌似也被影响了。 Bug JRUBY-3744 跟踪了这个问题:

JRuby 貌似也同样被影响了。它不会崩溃,但是会陷入无限循环中。

这个样例输出记录了这种行为。

一个实验的结论揭示了在 bigdecimal-segfault-fix 中使用的解决方法是一个临时的解决方法,因为它仅仅是修改了 BigDecimal 类,然后在使用过大的数的时候抛出异常。但是在 JRuby 中,这种代码却失败了,而不是保持 JRuby 线程继续工作;很显然这种代码的修改不能够支持更大的数。

Ruby 1.9.x的用户不会被影响

查看英文原文: DoS Vulnerability in BigDecimal

2009-06-14 04:261277
用户头像

发布了 90 篇内容, 共 34.1 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

hyperscan hs_scratch_t 结构

linux大本营

正则表达式 C语言 存储 结构体 hyperscan

linux unlikely函数

linux大本营

Linux unlikely函数

软件测试/测试开发丨测试工具篇(附答案)

测试人

面试 软件测试 自动化测试 测试开发

C++中怎么判断Qtableview一行满了自动换行

linux大本营

c++

华为云尚海峰:三个“全面”,助力央国企深度用云

科技热闻

堪称一绝!阿里技术人都用的Nginx手册,应用到架构齐全

做梦都在改BUG

Java nginx

为什么我们的微服务中需要网关?

做梦都在改BUG

Java 微服务 网关

linux 自定义段 c

linux大本营

Linux C语言 系统调用

c++11 分边在两个map中执行相同操作,代码如何优化

linux大本营

c++ map

c++11 map遍历 条件匹配,else

linux大本营

map C++11

织密“安全云网”,天翼云探索构建分布式多场景云服务稳定性保障体系!

天翼云开发者社区

c++ 使用Glog 生成多个具有相同等级的日志文件

linux大本营

c++ 日志 glog

详解Redisson分布式限流的实现原理

做梦都在改BUG

Java 分布式限流 redisson

c++11 获取当前机器唯一编码

linux大本营

C++

git 如何在本地有更改的情况下,使用命令获取远端最新代码

linux大本营

git

聊点技术 | 架构瘦身,让Bonree ONE跑得更轻

博睿数据

智能运维 博睿数据 一体化智能可观测 ONE有引力

面试何惧调优!腾讯技术官私藏的性能优化方案手册,原理实战齐全

做梦都在改BUG

Java 性能优化 性能调优

window c++ select 参数列表介绍

linux大本营

TCP socket select I/O 多路复用

从领先实践看港口行业资产管理数智化变革

用友BIP

创新实力强劲!天翼云荣获中国专利奖

天翼云开发者社区

阿里发布的百亿级高并发系统(全彩版小册),涵盖了所有的高并发操作!

架构师之道

Java 面试 高并发

http 多交易事务

linux大本营

HTTP

关于C语言的系统相关的桌面程序编程书籍推荐吗

linux大本营

C语言

Linux查看端口是哪个进程起的

linux大本营

Linux 进程

软件测试/测试开发丨常见面试题与流程篇(附答案)

测试人

软件测试 面试题 自动化测试 测试开发

私有云裸机物理服务器角色规划

穿过生命散发芬芳

私有云 三周年连更

c++ 使用Glog 生成多个具有相同等级的日志文件

linux大本营

c++ 日志 glog

用c++lamda函数计算阶乘

linux大本营

c++

河北电信“天翼云开放实验室”在雄安揭牌,加速算力资源落地!

天翼云开发者社区

websocket如何走网关

linux大本营

TCP websocket

千行百业的共同选择,华为云为何成为央国企首选云?

科技热闻

Ruby 1.8.x中BigDecimal的Dos漏洞_Ruby_Werner Schuster_InfoQ精选文章