CVE-2009-1151
phpMyAdmin phpMyAdmin
2022-03-25
Setup script used to generate configuration can be fooled using a crafted POST request to include arbitrary PHP code in generated configuration file.
Технический анализ и план устранения
Суть уязвимости
Злоумышленник может отправить специально сформированный POST-запрос к скрипту настройки (setup.php). Это позволяет внедрить произвольный PHP-код в итоговый конфигурационный файл (config.inc.php). После успешной атаки злоумышленник может выполнить любой код на сервере с правами веб-сервера, что приведет к полной компрометации системы.
Как исправить
Уязвимость устранена в phpMyAdmin версий 3.1.3.1 и 2.11.9.3. Необходимо обновить установленную версию до одной из этих или более новой.
Для Debian/Ubuntu:
# Обновите список пакетов
sudo apt update
# Обновите пакет phpMyAdmin
sudo apt install --only-upgrade phpmyadmin
Для RHEL/CentOS 7/8:
# Проверьте текущую версию
rpm -q phpMyAdmin
# Обновите пакет
sudo yum update phpMyAdmin
# или для CentOS 8/RHEL 8
sudo dnf update phpMyAdmin
Вручную (если установлен из исходников):
1. Скачайте актуальную версию с официального сайта.
2. Создайте резервную копию текущей конфигурации (config.inc.php).
3. Замените файлы в директории установки.
4. Восстановите конфигурацию из резервной копии.
Временное решение
Если немедленное обновление невозможно, выполните следующие действия:
-
Удалите или заблокируйте доступ к скрипту
setup.php:- Удаление: Найдите и удалите файл
setup.php(обычно находится в корневой директории phpMyAdmin, например,/usr/share/phpmyadmin/setup.php). - Блокировка через веб-сервер (Apache): Добавьте в конфигурацию виртуального хоста или в файл
.htaccessдирективу:apache <Files "setup.php"> Order Deny,Allow Deny from all </Files> - Блокировка через веб-сервер (Nginx): Добавьте в конфигурацию location блока phpMyAdmin:
nginx location ~ ^/phpmyadmin/setup\.php$ { deny all; return 403; }
- Удаление: Найдите и удалите файл
-
Настройте WAF (Web Application Firewall):
- Создайте правило, блокирующее любые POST-запросы, содержащие в теле подозрительные PHP-коды (например, строки
eval(,base64_decode(,system() или попытки прямой передачи параметров конфигурации.
- Создайте правило, блокирующее любые POST-запросы, содержащие в теле подозрительные PHP-коды (например, строки
-
Ограничьте сетевой доступ:
- Настройте правила межсетевого экрана (firewall), чтобы разрешить доступ к интерфейсу phpMyAdmin только с доверенных IP-адресов (административных сетей).