Original Photo Gallery Remote Command Execution
Original Photo Gallery Remote Command Execution
Name Original Photo Gallery Remote Command Execution
Systems Affected Original 0.11.2 version and below
Severity High
Vendor http://jimmac.musichall.cz/original.php
Advisory
http://www.ush.it/team/ascii/hack-original/advisory_updated.txt
http://www.ush.it/team/ascii/hack-original/advisory.txt
Author Francesco `ascii` Ongaro, Antonio `s4tan` Parata
Date 20070919
I. BACKGROUND
"Original is a set of scripts to get your digital photos on the web. It
aims to be as simple to maintain as possible."
The systems consist of two parts: "a client side script to scale your
images to different sizes, create archives of an album, attach optional
metadata" and a "php script to render html pages of the picture
gallery".
II. DESCRIPTION
It's possible to execute arbitrary code on remote systems which have
installed a vulnerable software version.
III. ANALYSIS
The file "inc/exif.inc.php" contains the following vulnerable statement:
exec("$exif_prog \"$gallery_dir/$galerie/lq/img-$snimek.jpg\"",
$exif_data, $exif_status);".
If PHP is configured with the "globals on" option, an attacker can
execute arbitrary code doing a direct request to the file and sending
shell commands in the parameter/value $exif_prog.
IV. DETECTION
http://www.x.com/original/inc/exif.inc.php?exif_prog=/path/to/touch%20/tmp/p0wn3d.txt;
The request should create a file in the /tmp directory (on Unix systems)
named p0wn3d.txt. If this happens than you have a vulnerable version of
the software (and a really risky PHP setup).
A rapid measurement show that ~10% systems are vulnerable of about
17'000 listed on Google (using the dork: "Generated by Original ver").
V. WORKAROUND
Upgrade to the new version 0.11.3 witch fix this vulnerability.
http://jimmac.musichall.cz/zip/original/original-0.11.3.tar.bz2
Or if unable to upgrade:
1) Disable access to the directory using Limit (vhosts/.htaccess).
2) Disable execution using disable_functions in php.ini.
The result is:
Warning: exec() has been disabled for security reasons in
/home/XXX/inc/exif.inc.php on line 157
3) Deny direct access to the file in the PHP code by checking for a
define or requested url.
VI. VENDOR RESPONSE
The vendor has promptly replied and addressed the problem issuing a
new release.
Original version 0.11.3 is available here:
http://jimmac.musichall.cz/zip/original/original-0.11.3.tar.bz2
VII. CVE INFORMATION
No CVE at this time.
VIII. DISCLOSURE TIMELINE
20070719 Bug discovered
20070725 Vendor contacted
20070927 Vendor reply and fix
20071002 Advisory released
IX. CREDIT
Francesco `ascii` Ongaro and Antonio `s4tan` Parata are credited with
the discovery of this vulnerability.
X. LEGAL NOTICES
Copyright (c) 2007 Francesco `ascii` Ongaro
Note: this exploit is DUAL LICENSED,
1. if you'll use it for personal and non-profit purposes you can
apply GPL v2 and above.
2. In the case you plain to:
a. use our code in any commercial context
b. implement this code in your non-GPL application
c. use this code during a Penetration Test
d. make any profit from it
you need to contact me in order to obtain a _commercial license_.
For more informations about Dual Licensing:
http://producingoss.com/html-chunk/dual-licensing.html
Permission is granted for the redistribution of this alert
electronically. It may not be edited in any way without mine express
written consent. If you wish to reprint the whole or any
part of this alert in any other medium other than electronically, please
email me for permission.
Disclaimer: The information in the advisory is believed to be accurate
at the time of publishing based on currently available information. Use
of the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct, indirect,
or consequential loss or damage arising from use of, or reliance on,
this information.