lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-id: <FE17F810-B984-4F4B-A0DA-AF130750D709@me.com>
Date: Wed, 12 Mar 2014 08:38:30 -0400
From: "Larry W. Cashdollar" <larry0@...com>
To: full <full-disclosure@...ts.grok.org.uk>
Cc: bugtraq@...urityfocus.com
Subject: Remote Command Injection in Arabic Prawn 0.0.1 Ruby Gem

Title: Remote Command Injection in Arabic Prawn 0.0.1 Ruby Gem

Author: Larry W. Cashdollar, @_larry0

Download Site: http://rubygems.org/gems/Arabic-Prawn

CVE: 2014-2322
Date: 12/17/2013

In Arabic-Prawn-0.0.1/lib/string_utf_support.rb, the following lines pass unsanitized input to the shell.

426 var = %x{ /usr/bin/curl -I -L --fail --silent --connect-timeout #{seconds} --max-time #{seconds+10} #{url}; /bin/echo -n $? }.to_i 
427

428             #return false unless var == 0
429             raise "Failed to create connection to web site: #{url}  --  curl error code: #{var}  --  " unless var     == 0
430 
431             str = %x{ /usr/bin/curl -L --fail --silent --connect-timeout #{seconds} --max-time #{seconds+10} #{url} | \
432                       /usr/bin/grep -Eo -m 1 \"(charset|encoding)=[\\"']?[^\\"'>]+\" | /usr/bin/grep -Eo \"[^=\\"    '>]+$\" }

443             %x{ /usr/bin/touch #{downloaded_file} 2>/dev/null }
444             raise "No valid HTML download file (path) specified!" unless File.file?(downloaded_file)
445             %x{ /usr/bin/curl -L --fail --silent --connect-timeout #{seconds} --max-time #{seconds+10} -o #{downloaded_file} #{url} }
446 
447             simple_test = %x{ /usr/bin/file -ik #{downloaded_file} }    #  cf. man file

If the downloaded file name #{downloaded_file} or #{url} contains any shell meta characters like ';' a malicious user can inject shell commands.

PoC
myfile;id;.txt

id would be passed to the command line and executed.

Advisory: http://www.vapid.dhs.org/advisories/arabic-ruby-gem.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ