{"id":"UBUNTU-CVE-2017-17405","details":"Ruby before 2.4.3 allows Net::FTP command injection. Net::FTP#get, getbinaryfile, gettextfile, put, putbinaryfile, and puttextfile use Kernel#open to open a local file. If the localfile argument starts with the \"|\" pipe character, the command following the pipe character is executed. The default value of localfile is File.basename(remotefile), so malicious FTP servers could cause arbitrary command execution.","modified":"2026-04-22T12:11:57.394687Z","published":"2017-12-15T00:00:00Z","related":["USN-3515-1"],"upstream":["CVE-2017-17405"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2017-17405"},{"type":"REPORT","url":"https://www.ruby-lang.org/en/news/2017/12/14/net-ftp-command-injection-cve-2017-17405/"},{"type":"REPORT","url":"https://github.com/ruby/ruby/commit/6d3f72e5be2312be312f2acbf3465b05293c1431"},{"type":"REPORT","url":"https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-4-3-released/"},{"type":"ADVISORY","url":"https://ubuntu.com/security/notices/USN-3515-1"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2017-17405"}],"affected":[{"package":{"name":"ruby1.9.1","ecosystem":"Ubuntu:14.04:LTS","purl":"pkg:deb/ubuntu/ruby1.9.1@1.9.3.484-2ubuntu1.6?arch=source&distro=trusty"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.9.3.484-2ubuntu1.6"}]}],"versions":["1.9.3.194-8.1ubuntu2","1.9.3.448-1ubuntu1","1.9.3.448-1ubuntu2","1.9.3.484-1ubuntu1","1.9.3.484-1ubuntu2","1.9.3.484-2ubuntu1","1.9.3.484-2ubuntu1.1","1.9.3.484-2ubuntu1.2","1.9.3.484-2ubuntu1.3","1.9.3.484-2ubuntu1.5"],"ecosystem_specific":{"binaries":[{"binary_name":"libruby1.9.1","binary_version":"1.9.3.484-2ubuntu1.6"},{"binary_name":"libtcltk-ruby1.9.1","binary_version":"1.9.3.484-2ubuntu1.6"},{"binary_name":"ri1.9.1","binary_version":"1.9.3.484-2ubuntu1.6"},{"binary_name":"ruby1.9.1","binary_version":"1.9.3.484-2ubuntu1.6"},{"binary_name":"ruby1.9.1-examples","binary_version":"1.9.3.484-2ubuntu1.6"},{"binary_name":"ruby1.9.1-full","binary_version":"1.9.3.484-2ubuntu1.6"},{"binary_name":"ruby1.9.3","binary_version":"1.9.3.484-2ubuntu1.6"}],"availability":"No subscription required"},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2017/UBUNTU-CVE-2017-17405.json"}},{"package":{"name":"ruby2.0","ecosystem":"Ubuntu:14.04:LTS","purl":"pkg:deb/ubuntu/ruby2.0@2.0.0.484-1ubuntu2.5?arch=source&distro=trusty"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.0.484-1ubuntu2.5"}]}],"versions":["2.0.0.299-2","2.0.0.343-1","2.0.0.343-1ubuntu1","2.0.0.353-1","2.0.0.353-1ubuntu1","2.0.0.484-1ubuntu1","2.0.0.484-1ubuntu2","2.0.0.484-1ubuntu2.1","2.0.0.484-1ubuntu2.2","2.0.0.484-1ubuntu2.4"],"ecosystem_specific":{"binaries":[{"binary_name":"libruby2.0","binary_version":"2.0.0.484-1ubuntu2.5"},{"binary_name":"ruby2.0","binary_version":"2.0.0.484-1ubuntu2.5"},{"binary_name":"ruby2.0-tcltk","binary_version":"2.0.0.484-1ubuntu2.5"}],"availability":"No subscription required"},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2017/UBUNTU-CVE-2017-17405.json"}},{"package":{"name":"ruby2.3","ecosystem":"Ubuntu:16.04:LTS","purl":"pkg:deb/ubuntu/ruby2.3@2.3.1-2~16.04.4?arch=source&distro=xenial"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.1-2~16.04.4"}]}],"versions":["2.3.0-1","2.3.0-2","2.3.0-4ubuntu2","2.3.0-4ubuntu3","2.3.0-5ubuntu1","2.3.1-2~16.04","2.3.1-2~16.04.2"],"ecosystem_specific":{"binaries":[{"binary_name":"libruby2.3","binary_version":"2.3.1-2~16.04.4"},{"binary_name":"ruby2.3","binary_version":"2.3.1-2~16.04.4"},{"binary_name":"ruby2.3-tcltk","binary_version":"2.3.1-2~16.04.4"}],"availability":"No subscription required"},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2017/UBUNTU-CVE-2017-17405.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"},{"type":"Ubuntu","score":"medium"}]}