由 nagachika 发表于 2017-12-14
翻译: Delton Ding
Ruby 内置的 Net::FTP 存在一个命令注入缺陷。此缺陷的 CVE 识别号为 CVE-2017-17405。
细节
Net::FTP#get
、getbinaryfile
、gettextfile
、put
、putbinaryfile
和 puttextfile
使用 Kernel#open
来打开本地文件。如果 localfile
命令以管道字符 "|"
开始,此后的字符会以命令被执行。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
- SVN 版本号早于 r61242 的全部版本
致谢
感谢 Heroku 产品安全团队的 Etienne Stalmans 报告了这一问题。
历史
- 于 2017-12-14 16:00:00 (UTC) 首次发布