ush.it - a beautiful place

Original Photo Gallery Remote Command Execution

October 2, 2007 at 9:54 pm - Filed under Hacks, Language EN - 666 words, reading time ~2 minutes - Permalink - Comments

We found a severe vulnerability in the Original script, a photo gallery software. Remote command (directly into an exec()) execution is possible with register globals on regardless the PHP version.

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.
THP USH Wisec DigitalBullets