Gallery: Arbitrary command execution — GLSA 200409-05

The Gallery image upload code contains a temporary file handling vulnerability which could lead to execution of arbitrary commands.

Affected packages

www-apps/gallery on all architectures
Affected versions < 1.4.4_p2
Unaffected versions >= 1.4.4_p2


Gallery is a PHP script for maintaining online photo albums.


The upload handling code in Gallery places uploaded files in a temporary directory. After 30 seconds, these files are deleted if they are not valid images. However, since the file exists for 30 seconds, a carefully crafted script could be initiated by the remote attacker during this 30 second timeout. Note that the temporary directory has to be located inside the webroot and an attacker needs to have upload rights either as an authenticated user or via "EVERYBODY".


An attacker could run arbitrary code as the user running PHP.


There are several workarounds to this vulnerability:

  • Make sure that your temporary directory is not contained in the webroot; by default it is located outside the webroot.
  • Disable upload rights to all albums for "EVERYBODY"; upload is disabled by default.
  • Disable debug and dev mode; these settings are disabled by default.
  • Disable allow_url_fopen in php.ini.


All Gallery users should upgrade to the latest version:

 # emerge sync
 # emerge -pv ">=www-apps/gallery-1.4.4_p2"
 # emerge ">=www-apps/gallery-1.4.4_p2"


Release date
September 02, 2004

Latest revision
May 22, 2006: 02



Bugzilla entries