Metabase закрыла эксплуатируемый zero-day с получением прав администратора

Metabase предупредила об эксплуатации zero-day максимальной критичности в платформе бизнес-аналитики и визуализации данных. Уязвимость с оценкой CVSS 10.0 затрагивает версии начиная с 1.58 и позволяет удалённому неаутентифицированному атакующему внедрить произвольный SQL в базу данных приложения, а затем получить права администратора экземпляра.
Проблеме не присвоен идентификатор CVE. Metabase сообщила, что атаку с использованием неизвестной на тот момент уязвимости обнаружили в Metabase Cloud. Облачные экземпляры уже обновлены до актуальных версий, а пользователям самостоятельных развёртываний компания рекомендует немедленно установить выпущенные патчи.
Какие версии нужно обновить
Исправления доступны для нескольких поддерживаемых веток. Уязвимы сборки от x.58.0 до x.58.23 включительно, от x.59.0 до x.59.20, от x.60.0 до x.60.16, от x.61.0 до x.61.10, от x.62.0 до x.62.8 и от x.63.0 до x.63.3. Безопасными названы соответственно x.58.24, x.59.21, x.60.17, x.61.11, x.62.9 и x.63.5.
После получения административного доступа злоумышленник может менять конфигурацию приложения, извлекать сохранённые учётные данные подключённых баз данных, читать доступные через эти подключения сведения и экспортировать данные. В контексте контроль привилегий и журналов доступа этот случай показывает, почему контроль привилегий и журналов доступа важен даже для внутренних аналитических систем.
Временная мера и признаки взлома
Если установить обновление сразу невозможно, Metabase предлагает временно заблокировать конечную точку /api/session/reset_password. После установки исправлений компания советует отозвать все активные пользовательские сессии: для этого в базе приложения нужно удалить все строки из таблицы core_session.
Также следует проверить API-ключи и удалить незнакомые, убедиться в отсутствии неожиданных изменений в учётных записях администраторов, сменить реквизиты подключённых баз данных и просмотреть журналы хранилища данных, активности Metabase и истории запросов.
Metabase назвала характерную последовательность индикаторов компрометации: запрос POST /api/session/reset_password со статусом 400, за которым следует GET /api/user/current со статусом 200. Генеральный директор Sameer Al-Sakran отметил, что обнаружение такой пары в журналах приложения или входящего трафика сервера с высокой вероятностью указывает на компрометацию.
Подтверждённый ущерб
Среди пострадавших оказалась компания Framework. Производитель ПК уведомил клиентов, что при атаке были получены имена клиентов, IP-адреса входа, адреса, номера телефонов и электронные почты. Сведения о заказах и платежах, по заявлению компании, затронуты не были.
Практический приоритет для организаций с self-hosted Metabase — проверить версию, без задержки перейти на исправленную сборку и сопоставить логи с опубликованными индикаторами. При обнаружении признаков атаки необходимо отозвать сессии, пересмотреть права и сменить учётные данные подключённых систем.

