YAML 解析 URI 存在 Heap 溢出風險(CVE-2014-2525)
由 hone and zzak 發表於 2014-03-29
翻譯: Juanito Fatas
Ruby 解析 URI 時存在溢出風險。此風險的 CVE 識別號為 CVE-2014-2525。
細節
每當在 YAML 解析含有標籤的字串時,刻意捏造的字串可導致 heap 溢出,進而可執行任何程式碼。
舉例來說:
YAML.load <code_from_unknown_source>受影響版本
自 Ruby 1.9.3-p0 起,採用 psych 作為預設 YAML 解析器的 Ruby。任一版採用 libyaml <= 0.1.5 的 psych 皆受影響。
以下版本的 Ruby 綁定了受影響的 libyaml:
- Ruby 2.0.0-p451 以及先前的版本(2.0.0-p481 不受影響)。
- 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,而依賴 psych 內嵌的 libyaml,推薦升級 psych 至 2.0.5,此版 psych 使用的是 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
最新消息
Ruby 4.0.1 發布
Ruby 4.0.1 已經發布了。
由 k0kubun 發表於 2026-01-13
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’s 的全新預設主題。
由 Stan Lo 發表於 2025-12-23
重新設計我們的網站形象
我們很興奮地宣布網站進行了全面改版。這次更新的設計方案是由 Taeko Akatsuka 負責創作。
由 Hiroshi SHIBATA 發表於 2025-12-22