由 Matz 于 2005 年 10 月 3 日发布
以下列出的 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 (日语)
鸣谢
感谢国家高级工业科学与技术研究院信息安全研究中心的 大岩 丰 博士发现了允许绕过安全级别的漏洞。