Ruby 安全级别设置中的漏洞

以下列出的 Ruby 版本存在一个漏洞,允许任意代码绕过安全级别检查运行。

Date published: 2005-10-02
Versions affected:
  Stable releases(1.8.x) - Versions 1.8.2 and earlier (fixed on Version 1.8.3)
  Old releases(1.6.x) - Versions 1.6.8 and earlier
  Development versions(1.9.0) - Versions 2005-09-01 and earlier (fixed on Version 2005-09-02)

解决方案

稳定版本 (1.8.x) 和开发版本 (1.9.0) 的用户应将 Ruby 更新到上面列出的最新版本。旧版本 (1.6.x) 的用户应更新到稳定版本 (1.8.x) 或从以下 URL 下载 1.6.x 的最新快照,进行构建和安装。

https://cache.ruby-lang.org/pub/ruby/snapshot-1.6.tar.gz

还提供了来自 ruby-1.6.8.tar.gz 的补丁,位于以下位置

https://cache.ruby-lang.org/pub/ruby/1.6/1.6.8-patch1.gz

md5sum: 7a97381d61576e68aec94d60bc4cbbab

还提供了来自 ruby-1.8.2.tar.gz 的补丁,位于以下位置

https://cache.ruby-lang.org/pub/ruby/1.8/1.8.2-patch1.gz

md5sum: 4f32bae4546421a20a9211253da103d3

描述

面向对象的脚本语言 Ruby 支持使用两种机制安全地执行不受信任的代码:安全级别和对象上的污点标志。 发现了一个允许绕过这些机制的漏洞。通过利用该漏洞,可以执行超出每个安全级别指定限制的任意代码。因此,所有使用安全级别执行不受信任代码的系统都必须更新 Ruby。

参考

JVN#62914675 http://jvn.jp/jp/JVN%2362914675/index.html (日语)

鸣谢

感谢国家高级工业科学与技术研究院信息安全研究中心的 大岩 丰 博士发现了允许绕过安全级别的漏洞。