Разработчики Gallery выпустили очередное обновление безопасности для последней стабильной версии Gallery 2.0.3 и пре-релиза 2.1 Release Candidate. В очередной раз уязвимость была обнаружена James Bercegay из GulfTech Security Research. Ваша инсталляция является уязвимой только в том случае, если параметр register_globals разрешен. В этом случае возможно использование эксплойта для исполнения другого, или запуска исполняемого кода на сервере. Особенную опасность данная уязвимость представляет, если Вы разрешаете закачивать файлы на сервер незнакомым Вам пользователям, и директория g2data может как раз оказаться местом для расположения эксплойта. Разработчики выпустили Галерею 2.0.4 и 2.1-RC-2a для устранения данной ошибки безопасности, но Вы можете устранить проблему самостоятельно, если не желаете запускать обновление. Читайте далее, чтобы узнать как быстро защитить свою инсталляцию Галереи.
Данная уязвимость присутствует во всех версиях Gallery 2.x, но не влияет на Gallery 1.x. Если Вы используете Gallery 2.x, то настоятельно рекомендуется провести обновление или защитить Вашу инсталляцию Галереи настолько быстро, насколько это возможно.
Возможно несколько быстрых и легких способов защиты Вашей инсталляции Галереи от атаки с помощью данного эксплойта. Выберете наиболее подходящий для Вашего случае. Вам необходимо проделать действия, только по одному из из приведенных ниже вариантов (на выбор)!
- Самым простым способом защитить Вашу инсталляцию Gallery 2, неважно 2.0.x или 2.1, является элементарное удаление файла index.php из папок updgrade и install. Когда в следующий раз Вы будете делать обновление (upgrade), то Вы получите новые, защищенные копии данных файлов. До этих пор Вы не сможете пользоваться инсталляцией/обновлением (при этом Ваша Галерея будет стабильно работать, ничего потеряно не будет).
- Если Вы используете версию 2.0.x, то разработчики предлагают пакет обновления, которые содержит минимум необходимых файлов для обновления Галереи. Следуйте инструкциям по обновлению для применения данного патча.
- Запретите параметр PHP register_globals. Отредактируйте фалй php.ini на Вашем сервере и, найдите строку вида:
register_globals = On
и замените ее на
register_globals = Off
после чего перезапустите Ваш веб-сервер - Отредактируйте файл upgrade/index.php. Первой строчкой должна идти <?php. На второй строке добавьте
$stepOrder = array();
Проделайте те же самые действия в файле install/index.php.