Серьёзная уязвимость в Apache bRPC: специально сформированный JSON приводит к сбою серверов

В сфере кибербезопасности выявлена очередная критическая угроза. В системе Apache bRPC (Baidu RPC) обнаружена уязвимость CVE-2025-59789, позволяющая удалённо вывести сервер из строя. Опасность дефекта оценивается по шкале CVSS в 9.8, что соответствует уровню «Critical» — самому высокому классу риска.

В чём заключается суть уязвимости?

Apache bRPC — высокопроизводительный RPC-фреймворк, активно используемый крупными компаниями и сервисами. Уязвимость обнаружена в компоненте json2pb, который отвечает за преобразование входящих JSON-данных в формат Protocol Buffer (protobuf).

Компонент json2pb использует библиотеку rapidjson, применяющую рекурсивный метод разбора данных. Злоумышленники могут воспользоваться этим механизмом, отправляя:

  • чрезвычайно глубоко вложенные структуры JSON,
  • рекурсивные элементы,
  • специально подготовленные JSON-объекты.

В результате функция парсинга входит в состояние бесконечной рекурсии, что приводит к переполнению стека (stack overflow) и последующему аварийному завершению работы сервера bRPC. Это вызывает полное прекращение функционирования сервиса.

Какие версии находятся под угрозой?

Подвержены все:

  • версии Apache bRPC ниже 1.15.0,
  • операционные системы, на которых используется фреймворк,
  • серверы, обрабатывающие protobuf-сообщения через HTTP+JSON.

Особенно опасно это для сервисов bRPC, получающих JSON-данные из недоверенных сетей.

Последствия: полный отказ в обслуживании (DoS)

Атака приводит к тому, что сервер:

  • прекращает работу,
  • не принимает новые подключения,
  • нарушает функционирование связанных сервисов,
  • временно становится недоступным.

Это не только снижает качество обслуживания, но и может нанести значительный ущерб бизнес-процессам.

Решения, предложенные Apache

Чтобы устранить уязвимость, Apache представила два варианта решения:

1. Полное обновление

  • Переход на версию bRPC 1.15.0.
  • Гарантирует исправление дефекта и улучшенную стабильность.

2. Установка официального патча

Если обновление невозможно, можно применить официальный патч, опубликованный в GitHub.

Важное изменение: ограничение глубины рекурсии

Обновление и патч включают механизм ограничения глубины рекурсии:

  • Стандартное значение — 100.
  • Ограничение применяется к следующим функциям:
    • ProtoMessageToJson
    • ProtoMessageToProtoJson
    • JsonToProtoMessage
    • ProtoJsonToProtoMessage

Если JSON или protobuf-структуры превышают допустимую глубину, запрос автоматически отклоняется.

Администраторы могут изменить порог с помощью параметра:

json2pb_max_recursion_depth

Рекомендации по безопасности

Организациям и IT-командам рекомендуется как можно быстрее выполнить следующие шаги:

✔ 1. Обновить серверы

Перейти на bRPC 1.15.0 или установить официальный патч.

✔ 2. Проверять источники JSON-данных

Недоверенные сети представляют наибольший риск.

✔ 3. Настроить лимит рекурсии

Подобрать безопасный уровень в соответствии со спецификой сервиса.

✔ 4. Усилить мониторинг и анализ логов

Обнаруживать аварии, связанные с переполнением стека, на раннем этапе.

✔ 5. Использовать фильтрацию трафика и WAF

Блокировать подозрительные JSON-структуры ещё до их обработки сервером.

Уязвимость CVE-2025-59789 в Apache bRPC представляет собой серьёзную угрозу для современной серверной инфраструктуры. Специально сформированный JSON может полностью вывести сервер из строя, что создаёт значительные риски для бизнеса.

Администраторам и специалистам по безопасности необходимо как можно быстрее:

  • обновить системы,
  • установить патчи,
  • усилить контроль над входящими данными.

В наши дни кибербезопасность — это не просто технический аспект, а важнейший элемент устойчивости любой организации. Своевременные меры позволяют эффективно предотвратить подобные угрозы.