
Важная уязвимость в Apache Pinot позволяет злоумышленникам обходить аутентификацию
Apache Pinot – это распределенная OLAP-база данных с открытым исходным кодом, используемая такими крупными компаниями, как LinkedIn, Uber и Microsoft для аналитики в реальном времени. Недавно в ней была обнаружена критическая уязвимость безопасности, получившая идентификатор CVE-2024-56325. Данный эксплойт позволяет обходить аутентификацию и несанкционированно получать доступ к системе. Уязвимость получила 9.8 баллов по шкале CVSS v3, что соответствует максимальному уровню опасности.
Причина уязвимости
Основной причиной является некорректная нейтрализация специальных символов в классе AuthenticationFilter (org.apache.pinot.core.auth.AuthenticationFilter
). Этот класс отвечает за проверку URI для API-эндпоинтов. Используя специальные последовательности символов (например, %2e%2e/
или нулевой байт), злоумышленники могут отправлять HTTP-запросы и обходить механизм нормализации путей.
Пример: использование недостаточно очищенного метода shouldAllowUnauthenticatedAccess()
позволяет обойти защиту и получить доступ к защищенным эндпоинтам, таким как /config
или /tables
.
Данный баг соответствует уязвимости CWE-707 («Ошибки нейтрализации элементов управления») и затрагивает следующие версии Apache Pinot:
- Broker: версии с 0.12.0 по 1.2.0
- Controller: версии с 0.7.0 по 1.2.0
Возможные последствия атаки
Эксплуатация этой уязвимости позволяет злоумышленникам получить те же привилегии, что и у аутентифицированных пользователей. Это дает им возможность:
- Получить доступ к внутренним API и конфигурациям Zookeeper (через эндпоинт
/appConfigs
) - Выполнять Groovy-скрипты через административные интерфейсы
- Запускать атаки удаленного выполнения кода (RCE), что подтверждено специалистами по безопасности
Apache Pinot используется для обработки петабайтных объемов данных с низкими задержками, что делает скомпрометированные инстансы привлекательной целью для атак. Потенциальные злоумышленники могут:
- Красть конфиденциальные персональные данные (PII/PHI) из аналитических потоков
- Манипулировать финансовыми отчетами путем изменения метрик
- Нарушать работу IoT-аналитики в промышленных средах
- Получить доступ к связанным системам, таким как кластеры Kafka и Hadoop
Экспертная группа Trend Micro Zero Day Initiative (ZDI) присвоила этой уязвимости идентификатор ZDI-CAN-24001 и подтвердила, что для ее эксплуатации требуются лишь базовые навыки HTTP-манипуляции.
Как устранить уязвимость?
Apache исправил эту уязвимость в версии Pinot 1.3.0, реализовав метод URI.normalize()
и проверку пути с использованием регулярных выражений.
Администраторам рекомендуется предпринять следующие меры:
- Обновить версию: перейти на Pinot 1.3.0 или более новую версию.
- Включить RBAC (Role-Based Access Control): активировать протокол доступа с ролевыми ограничениями через
pinot.controller.access.protocols=http+rbac
. - Отключить Groovy-скрипты, установив
pinot.server.instance.enable.groovy=false
. - Настроить защиту на уровне WAF (Web Application Firewall): заблокировать URI с последовательностями
..
,%252e%252e
и%00
.
Дополнительные рекомендации
✔ Форензика и аудит: проанализировать логи доступа на предмет неавторизованных запросов, содержащих /..
, возвращающих HTTP 200.
✔ Фильтрация входных данных: строго проверять и очищать все входные данные.
✔ Мониторинг в реальном времени: использовать системы наблюдения для выявления новых атак.
✔ Обучение персонала: регулярно проводить тренировки по безопасности.
Заключение
Данная уязвимость в Apache Pinot возникла из-за того, что механизмы аутентификации отставали от оптимизации запросов. Подобные проблемы ранее наблюдались в Elasticsearch (CVE-2024-35253) и MongoDB Atlas (CVE-2024-48721).
Согласно отчету IBM за 2025 год, 78% утечек данных связаны с уязвимостями обхода аутентификации. Поэтому для защиты распределенных архитектур крайне важно правильно проверять и фильтровать учетные данные.
Администраторам рекомендуется немедленно применить исправления и следовать предложенным мерам безопасности, чтобы предотвратить будущие угрозы.