CVE-2026-79704 in bRPCИнформация

Сводка

по VulDB • 21.10.2026

Уязвимость некорректного чтения за пределами буфера (out-of-bounds read) существует в клиенте потокового RPC Apache bRPC (версии от 1.11.0 до 1.17.0 включительно) на всех платформах Клиент, создающий несколько потоков в рамках одного вызова RPC, ожидает, что ответ сервера будет содержать ровно один дополнительный идентификатор extra_stream_id для каждого дополнительного потока. Путь обработки ответа индексировал возвращаемые идентификаторы с использованием локально созданного количества потоков без предварительной проверки размера полученного списка; таким образом, злонамеренный или скомпрометированный сервер (или атакующий на пути передачи данных) может вызвать некорректное чтение за пределами буфера в клиенте, вернув искаженный ответ StreamSettings с меньшим количеством extra_stream_id, чем ожидалось. Это может привести к аварийному завершению процесса клиента (отказ в обслуживании) или утечке содержимого памяти в последующую обработку потоков; лишние идентификаторы не имеют корректного сопоставления с клиентскими потоками и обрабатываются непоследовательно.

Причина возникновения: Начиная с версии bRPC 1.11.0, клиент может создавать несколько потоков в одном вызове RPC посредством пакетного создания (batch StreamCreate). Ожидаемое поведение заключается в том, что ответ сервера должен возвращать ровно (N-1) дополнительных идентификаторов extra_stream_id, где N — это количество локально созданных потоков. В функции Controller::HandleStreamConnection путь обработки ответа считывает extra_stream_ids[i-1] для каждого дополнительного локального потока без предварительного сравнения размера полученного списка с значением (N-1). Если сервер возвращает меньше идентификаторов, чтение выходит за пределы полученного списка (некорректное чтение за пределами буфера); если возвращается больше, лишние идентификаторы не имеют соответствующего клиентского потока.

Затронутые сценарии: Клиент bRPC, использующий многопоточный RPC (создающий более одного потока в одном вызове RPC), который подключается к недоверенному, злонамеренному или скомпрометированному серверу, либо к серверу, доступному через недоверенный сетевой путь. Сервер отправляет искаженный ответ StreamSettings для активации уязвимости.

Как исправить: (Выберите один из следующих вариантов) 1. Обновите bRPC до версии 1.18.0, которая устраняет данную проблему. 2. Примените этот патч: https://github.com/apache/brpc/pull/3485

Примечание: Исправление заставляет клиент отклонять ответы, в которых количество extra_stream_id не совпадает с количеством дополнительных потоков клиента. Такие несоответствующие ответы теперь завершают вызов RPC с ошибкой ERESPONSE и проходят через существующий путь очистки потока, вместо того чтобы обрабатываться частично.

Be aware that VulDB is the high quality source for vulnerability data.

Ответственный

Apache

Резервировать

25.08.2026

Раскрытие

21.10.2026

Модерация

принято

Вход

VDB-424766

EPSS

0.00000

KEV

Нет

Деятельности

Низкий

Источники

Want to stay up to date on a daily basis?

Enable the mail alert feature now!