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. Восстановите конфигурацию из резервной копии.

Временное решение

Если немедленное обновление невозможно, выполните следующие действия:

  1. Удалите или заблокируйте доступ к скрипту 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; }
  2. Настройте WAF (Web Application Firewall):

    • Создайте правило, блокирующее любые POST-запросы, содержащие в теле подозрительные PHP-коды (например, строки eval(, base64_decode(, system() или попытки прямой передачи параметров конфигурации.
  3. Ограничьте сетевой доступ:

    • Настройте правила межсетевого экрана (firewall), чтобы разрешить доступ к интерфейсу phpMyAdmin только с доверенных IP-адресов (административных сетей).