写点什么

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:261284
用户头像

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

关注

评论

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

理解DALL·E 2, Stable Diffusion和 Midjourney的工作原理

Baihai IDP

人工智能 AI 工具 AIGC 文转图

2022-12-04:给定一个由 ‘[‘ ,‘]‘,‘(‘,‘)’ 组成的字符串, 请问最少插入多少个括号就能使这个字符串的所有括号左右配对, 例如当前串是 “([[])“,那么插入一个‘]‘即可满足

福大大架构师每日一题

算法 rust 福大大

架构训练营模块1作业

附加信息

架构训练营

mysql优化之 performance Schema常用查询sql

@下一站

MySQL 优化 12月日更 12月月更

踩坑之旅:配置 ROS 环境

eng八戒

机器人 ROS 移动机器人 机器人开发

AngularJS进阶(二十二)实现时间选择插件

No Silver Bullet

AngularJS 12月月更 AngularJS时间插件

4.如何做好架构设计

程序员小张

「架构实战营」

架构实战营模块一作业

张Dave

【愚公系列】2022年12月 微信小程序-组件模板和组件样式

愚公搬代码

12月月更

2023最新版EasyRecovery软件下载安装教程

茶色酒

EasyRecovery EasyRecovery15 easyrecovery2023

架构实战营 1-5 学生管理系统实战随堂测验

西山薄凉

「架构实战营」

AngularJS进阶(二十五)requirejs + angular + angular-route 浅谈HTML5单页面架构

No Silver Bullet

AngularJS 12月月更 requirejs angular-route

工作中常用的设计模式--策略模式

lpe234

Java 后端 设计模式 策略模式 spring-boot

极客时间架构训练营作业-模块一

张建闯

架构实战营

编码开发如何开展API安全实现

穿过生命散发芬芳

12月月更

企业如何应对开源软件供应链安全问题?

安势信息

开源 开源安全 软件供应链安全 开源安全与治理 清源CleanSource SCA

TDengine3.0:解决高基数问题的时序数据库设计思路

TDengine

数据库 tdengine 时序数据库

架构实战营-模块1作业

小圆

再突破!MatrixDB 在 PostgreSQL 领域获双重大奖!

YMatrix 超融合数据库

数据库 postgresql 超融合数据库 YMatrix

会议报道 | 第二届百家医院单细胞中心联盟年度峰会圆满落幕

联营汇聚

架构实战营 - 微信业务架构图 & “学生管理系统”毕设架构设计

huiwen

架构实战营

CDH+Kylin三部曲之一:准备工作

程序员欣宸

大数据 kylin 12月月更

鸿蒙开发实例 | 可复用列表项的ListContainer

TiAmo

华为 华为云 12月月更

bat脚本常用命令及测试

@下一站

软件开发 BAT 12月日更 12月月更

Python:灵活的开发环境

eng八戒

Python Python自动化办公

为什么FDA和MITRE也提及SBOM ? - 解读《医疗器械网络安全区域事件准备和响应手册》

安势信息

网络安全 SCA工具 SBOM 医疗器械 安势信息

底层逻辑-理解Go语言的本质

面向加薪学习

golang go语言 源代码 golang 面试 Go源代码

架构实战营 1-6 学生管理云平台实战随堂测验

西山薄凉

「架构实战营」

浅谈 Apache Flume 数据接入的实现原理以及问题分析处理方式

移动云大数据

flume

足球比赛中的数据科学

CnosDB

数据库 时序数据库 开源社区 CnosDB infra

极客时间 - 运维进阶训练营 - 第六周作业

dog_brother

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