由 hone 和 zzak 于 2014 年 3 月 29 日发布
Ruby 中 YAML 的 URI 转义解析存在溢出。此漏洞已被分配 CVE 标识符 CVE-2014-2525。
详情
任何时候解析带有标签的 YAML 字符串时,一个精心构造的字符串都可能导致堆溢出,从而导致任意代码执行。
例如
受影响的版本
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 版本
解决方案
建议将 libyaml 安装到系统中的用户将 libyaml 更新到 0.1.6
。重新编译 Ruby 时,请指向新更新的 libyaml
没有系统 libyaml 的用户依赖于嵌入的 libyaml,建议将 psych 更新到 2.0.5
,其中供应商提供了 libyaml 0.1.6
或者,将您的 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