YAML URI 转义解析中的堆溢出 (CVE-2014-2525)
由 hone 和 zzak 发布于 2014 年 3 月 29 日
YAML 在 Ruby 中的 URI 转义解析存在溢出。此漏洞已分配 CVE 标识符 CVE-2014-2525。
详情
在解析带有标签的 YAML 字符串时,任何时候一个特意构造的字符串都可能导致堆栈溢出,进而导致任意代码执行。
例如
YAML.load <code_from_unknown_source>受影响的版本
Ruby 1.9.3-p0 及更高版本将 psych 作为默认 YAML 解析器。任何链接到 libyaml <= 0.1.5 的 psych 版本都受到影响。
而且,这些版本的 Ruby 都捆绑了受影响的 libyaml 版本。
- Ruby 2.0.0-p451 及更早版本,
- Ruby 2.1.0 和 Ruby 2.1.1。
您可以通过运行以下命令来验证使用的 libyaml 版本:
$ ruby -rpsych -e 'p Psych.libyaml_version'
[0, 1, 5]解决方案
建议已将 libyaml 安装到系统的用户将 libyaml 更新到 0.1.6。重新编译 Ruby 时,指向新更新的 libyaml。
$ ./configure --with-yaml-dir=/path/to/libyaml没有系统 libyaml 的用户依赖于嵌入式 libyaml,并建议将 psych 更新到 2.0.5,该版本包含 libyaml 0.1.6。
$ gem install psych或者,将您的 Ruby 更新到 2.0.0-p481、2.1.2 或更新的版本。
历史
- 最初发布于 2014-03-29 01:49:25 UTC
- 更新发布于 2014-03-29 09:37:00 UTC
- 更新发布于 2014-05-09 03:00:00 UTC
近期新闻
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 日