CVE-2026-79704
Niskie ryzyko· EPSS 5%Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 5 - wyżej niż 5% wszystkich znanych CVE
Streszczenie
W kliencie streamingowym Apache bRPC (wersje 1.11.0–1.17.0) występuje podatność typu out-of-bounds read. Klient tworzący wiele strumieni w jednym RPC indeksuje zwrócone identyfikatory extra_stream_id bez uprzedniego sprawdzenia rozmiaru listy, więc złośliwy lub przejęty serwer może zwrócić malformed StreamSettings z mniejszą liczbą identyfikatorów i wywołać odczyt poza granicami bufora.
Ocena ryzyka
Może to doprowadzić do awarii procesu klienta (denial of service) lub wycieku zawartości pamięci do dalszego przetwarzania strumieni. Ryzyko dotyczy klientów łączących się z niezaufanym serwerem lub przez niezaufaną ścieżkę sieciową.
Rekomendacja
Zaktualizuj Apache bRPC do wersji 1.18.0 lub zastosuj poprawkę z PR #3485. Poprawka odrzuca odpowiedzi, w których liczba extra_stream_ids nie odpowiada liczbie dodatkowych strumieni klienta.
Inne podatności w Apache bRPC
Zobacz wszystkie- CVE-2025-60021Krytyczne
Podatność na zdalne wstrzyknięcie poleceń w wbudowanej usłudze profilera sterty w Apache bRPC (wszystkie wersje < 1.15.0) na wszystkich platformach umożliwia atakującemu wstrzyknięcie zdalnego polecenia. Przyczyną jest to, że wbudowana usługa profilera sterty bRPC (/pprof/heap) nie waliduje parametru extra_options dostarczonego przez użytkownika i wykonuje go jako argument wiersza poleceń. Atakujący mogą wykonywać zdalne polecenia za pomocą parametru extra_options. Dotyczy to scenariuszy użycia wbudowanej usługi profilera sterty bRPC do profilowania pamięci jemalloc. Naprawa: 1. Zaktualizuj bRPC do wersji 1.15.0. 2. Zastosuj poprawkę ręcznie (https://github.com/apache/brpc/pull/3101).
- CVE-2026-90484Niskie ryzyko· EPSS 4%
W kliencie MySQL biblioteki Apache bRPC występuje dereferencja wskaźnika null podczas przetwarzania odpowiedzi serwera o zerowej długości ładunku. Pakiet o zadeklarowanej długości zero przechodzi kontrolę ramki, a następnie parser odczytuje bajt typu odpowiedzi przez nieograniczone pobranie 5 bajtów, które zwraca nullptr, co powoduje odczyt p[4] i awarię procesu klienta.
- CVE-2026-87849Niskie ryzyko· EPSS 5%
Podatność w parserze odpowiedzi usługi nazewniczej Discovery w Apache bRPC (wersje < 1.18.0) polega na wywoływaniu akcesorów RapidJSON przeznaczonych wyłącznie dla obiektów (FindMember) na wartościach JSON bez uprzedniego sprawdzenia ich typu. Zniekształcona odpowiedź Discovery, zawierająca nie-obiektowe wpisy w polach data/service lub na liście instancji, powoduje odczyt pamięci poza granicami i potencjalną awarię klienta bRPC.
- CVE-2026-86249Niskie ryzyko· EPSS 24%
W brpc::Server skonfigurowanym z ServerOptions.auth oraz ServerOptions.internal_port można obejść uwierzytelnianie, wysyłając najpierw żądanie do wbudowanej usługi na internal_port. Weryfikacja wykonywana jest tylko dla pierwszej wiadomości połączenia, a jej wynik jest przypisywany do całego połączenia.
- CVE-2026-86147Niskie ryzyko· EPSS 10%
Apache bRPC w wersji < 1.18.0 udostępnia wbudowane usługi /flags i /pprof, które pozwalają zdalnemu atakującemu na zmianę ścieżek zrzutu (bvar_dump_file, bvar_dump_tabs, mbvar_dump_file) i tworzenie katalogów lub nadpisywanie plików z uprawnieniami procesu serwera. Dodatkowo parametr ?seconds= w /pprof nie jest ograniczany, co umożliwia blokowanie procesowego profilera CPU na dowolnie długi czas.
- CVE-2026-86146Niskie ryzyko· EPSS 10%
Podatność typu HTTP request/response smuggling w bibliotece Apache bRPC w wersji < 1.18.0 wynika z niespójnej interpretacji nagłówków HTTP/1.1 przez wbudowany parser. bRPC akceptuje nieprawidłowe formy nagłówków (spacje przed dwukropkiem, spacje w wartościach Content-Length, obs-fold, traktowanie trailerów chunked jako nagłówków, listy Transfer-Encoding z odstępami), co pozwala atakującemu na przemycenie żądań lub nagłówków, gdy bRPC działa za proxy lub load balancerem.
- CVE-2026-84748Niskie ryzyko· EPSS 7%
W Apache bRPC (wersje < 1.18.0) występuje nieprawidłowa autoryzacja, która pozwala zdalnym atakującym na dostęp do usług wbudowanych przez port publiczny. Ścieżki protokołów opartych na protobuf nie egzekwowały flagi security_mode, umożliwiając wywołanie usług takich jak brpc.vars lub hotspots.
- CVE-2026-84747Niskie ryzyko· EPSS 11%
Podatność w Apache bRPC (wersje < 1.18.0) wynika z niezgodności interpretacji ścieżek HTTP między bRPC a frontowym proxy. Funkcja FindMethodPropertyByURI() pomija puste segmenty ścieżki (podwójne ukośniki), przez co ścieżki takie jak //flags są traktowane jak /flags, mimo że wg RFC 3986 są to różne ścieżki. Dodatkowo HTTP/2 nie waliduje pseudo-nagłówka :path, co pozwala na obejście reguł ACL proxy i dostęp do usług wewnętrznych.
- CVE-2026-84727Średnie
W implementacji protokołu RTMP w Apache bRPC (wersja < 1.18.0) występuje użycie po zwolnieniu pamięci (use-after-free). Złośliwy peer RTMP może wysłać spreparowaną wiadomość Abort, powodując awarię procesu lub potencjalne uszkodzenie pamięci. Przyczyną jest usunięcie obiektu RtmpChunkStream przez wątek odbiorczy podczas gdy wątek wysyłający jednocześnie go używa bez synchronizacji.
- CVE-2026-82953Niskie ryzyko· EPSS 12%
Podatność w implementacji protokołu RTMP w Apache bRPC (wersje < 1.18.0) polega na dereferencji wskaźnika NULL, gdy serwer odrzuca żądanie createStream, zwracając null stream, a następnie próbuje wysłać odpowiedź błędu, co może spowodować awarię serwera. Atakujący może zdalnie wywołać odmowę usługi, wysyłając specjalnie spreparowane polecenie createStream i zamykając połączenie przed wysłaniem odpowiedzi.
Oryginalny opis (angielski, źródło NVD)
An out-of-bounds read vulnerability exists in the streaming RPC client of Apache bRPC (versions 1.11.0 through 1.17.0) on all platforms. A client that creates multiple streams in a single RPC expects the server response to carry exactly one extra_stream_id for every additional stream. The response handling path indexed the returned identifiers using the locally created stream count without first validating the size of the returned list, so a malicious or compromised server (or an on-path attacker) can trigger an out-of-bounds read in the client by returning a malformed StreamSettings response with fewer extra_stream_ids than expected. This may crash the client process (denial of service) or leak unintended memory contents into subsequent stream handling; surplus identifiers have no valid client-stream mapping and are processed inconsistently. Root Cause: Since bRPC 1.11.0, a client can create multiple streams in one RPC via batch StreamCreate. The expected behavior is that the server response must return exactly (N-1) extra_stream_ids, where N is the number of locally created streams. In Controller::HandleStreamConnection, the response path reads extra_stream_ids[i-1] for each additional local stream without first comparing the returned list size with (N-1). If the server returns fewer identifiers, the read runs past the end of the returned list (out-of-bounds read); if it returns more, the surplus identifiers have no corresponding client-side stream. Affected Scenarios: A bRPC client using multi-stream RPC (creating more than one stream in a single RPC) that connects to an untrusted, malicious, or compromised server or to a server reached through an untrusted network path. The server sends a malformed StreamSettings response to trigger the issue. How to Fix: (Choose one of the following options) 1. Upgrade bRPC to version 1.18.0, which fixes this issue. 2. Apply this patch: https://github.com/apache/brpc/pull/3485 Note: The fix makes the client reject responses whose extra_stream_ids count does not exactly match the number of additional client streams. Such mismatched responses now fail the RPC with ERESPONSE and go through the existing stream cleanup path, instead of being partially processed.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

