CVE-2022-23131

Zabbix Frontend

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2022-02-22

Официальное описание

Unsafe client-side session storage leading to authentication bypass/instance takeover via Zabbix Frontend with configured SAML.

🛡️
Технический анализ и план устранения

Суть уязвимости

Атакующий может обойти аутентификацию SAML и получить доступ к Zabbix Frontend с правами администратора. Для этого достаточно знать логин любого существующего пользователя Zabbix (например, Admin). Уязвимость возникает из-за неправильной обработки сессионных данных на стороне клиента (в cookie zbx_session), когда Zabbix настроен на использование SAML.

Как исправить

Необходимо обновить Zabbix Frontend до исправленной версии.

  • Для Zabbix 5.4.x: обновитесь до версии 5.4.11 или выше.
  • Для Zabbix 6.0.x: обновитесь до версии 6.0.9 или выше.

Пример для Ubuntu/Debian (официальный репозиторий Zabbix):

# Обновите список пакетов и установите исправленную версию
sudo apt update
sudo apt install --only-upgrade zabbix-web-service zabbix-frontend-php

После обновления перезапустите веб-сервер:

# Для Apache
sudo systemctl restart apache2
# Для Nginx + PHP-FPM
sudo systemctl restart nginx php-fpm

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

Если немедленное обновление невозможно, отключите аутентификацию через SAML, переключившись на встроенную (Internal) или другую доступную систему аутентификации.

  1. Войдите в Zabbix Frontend как администратор.
  2. Перейдите в Administration → Authentication → SAML settings.
  3. В поле Default authentication выберите Internal (или другой, отличный от SAML).
  4. Нажмите Update.
  5. Важно: Также заблокируйте доступ к странице входа (/index_sso.php) через веб-сервер или WAF, добавив правило для возврата ошибки 403.

Пример правила для Nginx:

location = /index_sso.php {
    deny all;
    return 403;
}

Пример правила для Apache (в .htaccess или конфиге виртуального хоста):

<Location "/index_sso.php">
    Require all denied
</Location>