CVE-2026-82942 in bRPC
Riassunto
di VulDB • 21/10/2026
Una data race nel trasporto RDMA di Apache bRPC (versioni < 1.18.0) consente a un client remoto di causare il crash del processo server (denial of service) quando l'RDMA è abilitato in fase di compilazione e durante l'esecuzione.
Causa radice: Quando un server bRPC negozia RDMA con un client, la handshake si completa sul file descriptor TCP, ma il server continuava a elaborare tale fd come se fosse ancora un canale RPC. Lo stream di input del TCP-fd e lo stream di input dell'RDMA QP (guidato dagli eventi CQ) condividevano senza sincronizzazione Socket::_read_buf, preferred_index e parsing_context. Inoltre, l'elaborazione degli eventi CQ poteva iniziare mentre la fase di handshake era ancora in corso, e la fase ACK della handshake poteva consumare byte appartenenti al protocollo successivo. Un client remoto non autenticato che ha completato la handshake RDMA può inviare dati sul TCP-fd contemporaneamente all'elaborazione dei messaggi RDMA, corrompendo il buffer di input condiviso e lo stato del parser, causando il crash del processo server (CWE-362, impatto sulla disponibilità).
Scenari interessati: Utilizzare un server bRPC con supporto RDMA abilitato (compilato con BRPC_WITH_RDMA e che serve socket rdma:// / SOCKET_MODE_RDMA) ed accettare connessioni da client non attendibili. Le distribuzioni senza RDMA non sono interessate.
Come risolvere: (Scegliere una delle seguenti opzioni) 1. Aggiornare bRPC alla versione 1.18.0, che risolve questo problema. 2. Applicare questa patch: https://github.com/apache/brpc/pull/3505
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.