Command Injection in Ruby Gem Sprout 0.7.246

Larry W. Cashdollar , @_larry0
11/10/2013

CVE: 2013-6421

http://rubygems.org/gems/sprout
http://http://projectsprouts.org/

The unpack_zip() function contains the following code:

sprout-0.7.246/lib/sprout/archive_unpacker.rb

 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