由 nagachika 發表於 2017-12-14
翻譯: Delton Ding
Ruby 內建的 Net::FTP 存在一個命令注入風險。此風險的 CVE 識別號為 CVE-2017-17405。
細節
Net::FTP#get
、getbinaryfile
、gettextfile
、put
、putbinaryfile
和 puttextfile
使用 Kernel#open
來打開本地檔案。如果 localfile
命令以 pipeline 字符 "|"
開始,此後的字符會以命令被執行。localfile
的預設值是 File.basename(remotefile)
,那麼惡意 FTP 伺服器可能引發任意代碼的執行。
所有正在運行受影響版本的用戶應立即升級。
受影響版本
- Ruby 2.2 系列: 2.2.8 及之前版本
- Ruby 2.3 系列: 2.3.5 及之前版本
- Ruby 2.4 系列: 2.4.2 及之前版本
- Ruby 2.5 系列: 2.5.0-preview1
- trunk revision 早於 r61242 的全部版本
致謝
感謝 Heroku 產品安全團隊的 Etienne Stalmans 回報了這一問題。
歷史
- 於 2017-12-14 16:00:00 (UTC) 首次發佈