Gallery is an open source image management system written in PHP. More information is available at http://gallery.sourceforge.net
Starting in the 1.3.1 release, Gallery includes code to simulate the behaviour of the PHP 'register_globals' variable in environments where that setting is disabled. It is simulated by extracting the values of the various $HTTP_ global variables into the global namespace.
A crafted URL such as http://example.com/gallery/init.php?HTTP_POST_VARS=xxx causes the 'register_globals' simulation code to overwrite the $HTTP_POST_VARS which, when it is extracted, will deliver the given payload. If the payload compromises $GALLERY_BASEDIR then the malicious user can perform a PHP injection exploit and gain remote access to the webserver with PHP user UID access rights.
The workaround for the vulnerability is to replace init.php and setup/init.php with the files in the following ZIP file: http://prdownloads.sourceforge.net/gallery/patch_1.4.1-to-1.4.1-pl1.zip?download
All users are encouraged to upgrade their gallery installation:
# emerge sync # emerge -p ">=www-apps/gallery-1.4.1_p1" # emerge ">=www-apps/gallery-1.4.1_p1"