An exploitable heap overflow vulnerability exists in the Fiddle::Function.new "initialize" function functionality of Ruby. In Fiddle::Function.new "initialize" heap buffer "arg_types" allocation is made based on args array length. Specially constructed object passed as element of args array can increase this array size after mentioned allocation and cause heap overflow.
{
"binaries": [
{
"binary_version": "1.9.3.484-2ubuntu1.3",
"binary_name": "libruby1.9.1"
},
{
"binary_version": "1.9.3.484-2ubuntu1.3",
"binary_name": "libtcltk-ruby1.9.1"
},
{
"binary_version": "1.9.3.484-2ubuntu1.3",
"binary_name": "ri1.9.1"
},
{
"binary_version": "1.9.3.484-2ubuntu1.3",
"binary_name": "ruby1.9.1"
},
{
"binary_version": "1.9.3.484-2ubuntu1.3",
"binary_name": "ruby1.9.1-dev"
},
{
"binary_version": "1.9.3.484-2ubuntu1.3",
"binary_name": "ruby1.9.1-examples"
},
{
"binary_version": "1.9.3.484-2ubuntu1.3",
"binary_name": "ruby1.9.1-full"
},
{
"binary_version": "1.9.3.484-2ubuntu1.3",
"binary_name": "ruby1.9.3"
}
],
"availability": "No subscription required"
}
{
"binaries": [
{
"binary_version": "2.0.0.484-1ubuntu2.4",
"binary_name": "libruby2.0"
},
{
"binary_version": "2.0.0.484-1ubuntu2.4",
"binary_name": "ruby2.0"
},
{
"binary_version": "2.0.0.484-1ubuntu2.4",
"binary_name": "ruby2.0-dev"
},
{
"binary_version": "2.0.0.484-1ubuntu2.4",
"binary_name": "ruby2.0-tcltk"
}
],
"availability": "No subscription required"
}