CVE-2018-8778: String#unpack 緩衝區溢位

usa 發表於 2018-03-28
翻譯: Juanito Fatas

String#unpack 方法存在緩衝區溢位的安全性風險。 此風險的 CVE 識別號為 CVE-2018-8778

細節

String#unpack 收到 format specifiers 為參數時,可用 @ 指定解析資料的位置。若 @ 指定了一個很大的數字,數字會被當成是負數,導致緩衝區溢出。

若腳本使用了 String#unpack 接受外來輸入,攻擊者可以利用此風險讀出 heap 的資料。

所有使用受影響版本的使用者應立即升級。

受影響版本

  • Ruby 2.2 系列: 2.2.9 以及之前的版本
  • Ruby 2.3 系列: 2.3.6 以及之前的版本
  • Ruby 2.4 系列: 2.4.3 以及之前的版本
  • Ruby 2.5 系列: 2.5.0 以及之前的版本
  • Ruby 2.6 系列: 2.6.0-preview1
  • trunk revision r62992 之前的版本

致謝

感謝 aerodudrizzt 回報此問題。

歷史

  • 初次發佈於 2018-03-28 14:00:00 (UTC)

最新消息

Ruby 4.0.0 preview2 發布

我們很高興宣布 Ruby 4.0.0-preview2 發布了。 Ruby 4.0 將 Unicode 版本更新至 17.0.0,以及其他更新。

naruse 發表於 2025-11-17

更多新聞...