В открытом RPC-фреймворке Apache bRPC обнаружена опасная уязвимость, позволяющая злоумышленникам вызывать отказ в обслуживании (DoS) через сетевые атаки. Проблема, зарегистрированная как CVE-2025-54472, затрагивает все версии ПО до 1.14.1. Основная причина уязвимости - некорректная обработка выделения памяти в компоненте парсера Redis-протокола.
Описание и последствия уязвимости
Исследователь безопасности Тайлер Зарс обнаружил, что механизм парсинга Redis-запросов в Apache bRPC не ограничивает объем выделяемой памяти на основании входящих данных. При обработке сетевых пакетов система без должной проверки принимает переданные целочисленные значения, определяющие размер выделяемой памяти, что позволяет атакующему спровоцировать краш сервиса.
Уязвимость классифицирована как «важная» (Important) командой безопасности Apache. Она представляет угрозу для всех платформ, использующих bRPC. Особенно опасны два сценария эксплуатации:
- Серверный режим - если bRPC работает как Redis-сервер, доступный извне.
- Клиентский режим - если bRPC подключается к потенциально скомпрометированным Redis-серверам.
Атакующий может отправить специально сформированный пакет с аномально большими числовыми значениями, что заставит систему попытаться выделить непомерный объем памяти. Это приводит к ошибкам "bad_alloc" и аварийной остановке сервиса.
Недостатки предыдущих исправлений
Разработчики Apache bRPC попытались устранить проблему в версии 1.14.0, добавив ограничения на выделение памяти. Однако проверка границ оказалась уязвимой к переполнению целочисленных значений, что позволило обойти защиту. В результате даже обновленные системы оставались под угрозой, хотя диапазон триггеров изменился.
Рекомендации по устранению
Apache Foundation выпустила окончательное исправление в версии 1.14.1, где реализована корректная проверка границ выделяемой памяти. Альтернативой может стать ручное применение патча из GitHub (PR #3050).
Основные изменения:
- Установлен лимит выделяемой памяти 64 МБ на операцию в Redis-парсере (настраивается через флаг "redis_max_allocation_size").
- Добавлены дополнительные проверки на переполнение при обработке входящих данных.
Организациям, использующим bRPC, рекомендуется немедленно обновить систему или применять временные меры защиты, такие как ограничение доступа к Redis-портам из ненадежных сетей.
Ссылки
- https://lists.apache.org/thread/pvw31sxjj1yz0f8f8lp9m09h70w9hnct
- https://www.cve.org/CVERecord?id=CVE-2025-54472