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.
{
"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-dev",
"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"
}
{
"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-dev",
"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"
}
{
"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-dev",
"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"
}