Command Injection in Ruby Gem Sprout 0.7.246

Larry W. Cashdollar , @_larry0

CVE: 2013-6421

The unpack_zip() function contains the following code:


 60           zip_dir = File.expand_path(File.dirname(zip_file))
 61           zip_name = File.basename(zip_file)
 62           output = File.expand_path(dir)
 63           # puts ">> zip_dir: #{zip_dir} zip_name: #{zip_name} output: #{output}    "     
 64           %x(cd #{zip_dir};unzip #{zip_name} -d #{output})

If the attacker can control zip_dir, zip_name or output then they can possibly execute shell commands by injecting shell meta characters as input.

For example: filename;id;.zip

Vendor Notified: 11/10/2013