CVE-2018-16396: 特定命令下受污染標記未能如實展開到 Array#pack 和 String#unpack 結果中
由 usa 發表於 2018-10-17
翻譯: Delton Ding
使用 Array#pack 和 String#unpack 處理某些特定格式時,原資料的受污染標記未能展開到返回的字串或陣列中。此缺陷已被分配 CVE 編號 CVE-2018-16396。
細節
Array#pack 方法將其接收的內容轉換成某一特定格式。當參數包含一些受污染的物件,返回的字串也應包含這些污染。Array#unpack 方法將參數展開成一個陣列,也應該將受污染的標記轉換到返回的陣列中。然而,當命令含有 B、b、H 和 h 時,污染標記並不會被展開。所以,如果你的腳本使用 Array#pack 和/或 String#unpack 來處理了不可靠的輸入後,嘗試檢查這些受污染標記時,檢查結果可能出錯。
所有受到影響的用戶請儘快升級。
受影響的版本
- Ruby 2.3 系列: 2.3.7 及更早版本
- Ruby 2.4 系列: 2.4.4 及更早版本
- Ruby 2.5 系列: 2.5.1 及更早版本
- Ruby 2.6 系列: 2.6.0-preview2 及更早版本
- 早於 r65125 的全部版本
鳴謝
感謝 Chris Seaton 回報了這一問題。
歷史
- 最早發佈於 2018-10-17 14: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