Podatności Apache bRPC
37 znanych podatności CVE w Apache bRPC, przetłumaczonych i ocenionych.
- 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.
- CVE-2026-82942Niskie ryzyko· EPSS 3%
Wyścig danych w transporcie RDMA Apache bRPC (wersje < 1.18.0) pozwala zdalnemu klientowi zawiesić proces serwera (odmowa usługi), gdy RDMA jest włączone podczas kompilacji i działania. Po zakończeniu uzgadniania RDMA serwer nadal przetwarza gniazdo TCP jako kanał RPC, współdzieląc bez synchronizacji bufory wejściowe i stan parsera z przetwarzaniem zdarzeń RDMA, co prowadzi do uszkodzenia danych i awarii.
- CVE-2026-82425Niskie ryzyko· EPSS 4%
Podatność w Apache bRPC w wersjach przed 1.18.0 pozwala zdalnemu złośliwemu peerowi wywołać awarię procesu poprzez wyścig między zamykaniem połączenia a odrodzeniem health checka. W oknie, gdy Socket jest adresowalny, ale nie ma deskryptora pliku, dochodzi do niepowodzenia CHECK i zakończenia procesu, co prowadzi do odmowy usługi.
- CVE-2026-82231Niskie ryzyko· EPSS 4%
Klient Thrift w Apache bRPC (wersja < 1.18.0, zbudowany z WITH_THRIFT, domyślnie wyłączonym) może zostać zawieszony przez serwer, z którym się komunikuje. Gdy serwer zwróci odpowiedź T_EXCEPTION z nieprawidłową strukturą wyjątku, klient dekoduje ją bez przechwytywania wyjątków Apache Thrift (TProtocolException, TTransportException lub std::length_error), co prowadzi do std::terminate() i zakończenia całego procesu wraz z innymi trwającymi RPC.
- CVE-2026-82230Wysokie
Apache bRPC w wersjach przed 1.18.0 zawiera podatność niekontrolowanej rekurencji w komponencie mcpack2pb. Zdalny atakujący może spowodować awarię serwera poprzez wysłanie głęboko zagnieżdżonych danych mcpack, co prowadzi do przepełnienia stosu i crashu procesu.
- CVE-2026-82210Niskie ryzyko· EPSS 8%
W funkcji streamingu Apache bRPC w wersjach poniżej 1.18.0 występuje wymuszalny asercja, która pozwala zdalnemu atakującemu na awarię procesu serwera poprzez wysłanie zniekształconej ramki feedback strumienia. Funkcja Stream::SetRemoteConsumed() zawiera CHECK(_cur_buf_size > 0) oraz bezwarunkową asercję CHECK(buf.IsEmpty()) na ładunku ramki, a ich niespełnienie przerywa proces.
- CVE-2026-81755Niskie ryzyko· EPSS 13%
Podatność w komponencie streaming RPC Apache bRPC (wersje < 1.18.0) pozwala zdalnemu atakującemu na wyczerpanie pamięci serwera i wywołanie odmowy usługi (DoS) poprzez wysłanie pojedynczego żądania RPC deklarującego nadmierną liczbę strumieni. Serwer tworzy osobny strumień odpowiedzi dla każdego identyfikatora z pola extra_stream_ids, bez limitu liczby akceptowanych strumieni w jednym RPC, a każdy strumień alokuje własną kolejkę bthread i zasoby.
- CVE-2026-80463Niskie ryzyko· EPSS 10%
Podatność w Apache bRPC (wersje < 1.18.0) polega na nieograniczonym gromadzeniu danych w pamięci podczas składania pofragmentowanych wiadomości strumieniowych. Zdalny atakujący może wysyłać niekończącą się sekwencję ramek kontynuacyjnych, powodując wyczerpanie pamięci serwera i odmowę usługi (DoS).
- CVE-2026-79704Niskie ryzyko· EPSS 5%
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.
- CVE-2026-78334Niskie ryzyko· EPSS 17%
Brak uwierzytelniania w ścieżce strumieniowego RPC Apache bRPC (wersja < 1.18.0) pozwala zdalnemu atakującemu ominąć uwierzytelnianie serwera i wstrzykiwać lub dostarczać ramki strumieniowe, gdy serwer ma skonfigurowany Authenticator. Ramki strumieniowe nie przechodzą przez hak uwierzytelniania, a strumienie mogą być przechwycone przez inne gniazdo o tym samym identyfikatorze.
- CVE-2026-78066Niskie ryzyko· EPSS 5%
Podatność na wyczerpanie zasobów w Apache bRPC w wersjach przed 1.18.0 dotyczy wielu parserów przetwarzających dane kontrolowane przez klienta. Dekompresory gzip/zlib/snappy nie ograniczają rozmiaru danych wyjściowych, a parsery AMF, RTMP, sofa-pbrpc i mcpack2pb ufają rozmiarom deklarowanym w transmisji, co pozwala atakującemu wywołać nadmierne zużycie pamięci i awarię procesu.
- CVE-2026-78058Niskie ryzyko· EPSS 22%
Apache bRPC w wersji < 1.18.0 zawiera podatność na niekontrolowane zużycie zasobów w ścieżce odbioru HTTP/2 (h2). Zdalny, nieuwierzytelniony atakujący może wysyłać spreparowane ramki HTTP/2, aby wywołać awarię serwera lub nieograniczony wzrost zużycia pamięci. Przyczyną jest brak egzekwowania limitów odbioru (m.in. MAX_CONCURRENT_STREAMS, MAX_HEADER_LIST_SIZE) oraz obejście limitu bufora zapisu przez ramki kontrolne.
- CVE-2026-78048Niskie ryzyko· EPSS 15%
Podatność w dekoderze kompresji nagłówków HPACK w stosie HTTP/2 (h2/gRPC) Apache bRPC w wersji < 1.18.0 pozwala zdalnemu atakującemu wywołać awarię procesu serwera poprzez wysłanie spreparowanej sekwencji nagłówków HPACK. Błąd polega na błędnym rozmiarze bufora pierścieniowego tabeli dynamicznej (34 zamiast 33 bajtów na wpis), co prowadzi do przepełnienia i przerwania CHECK, skutkując odmową usługi.
- CVE-2026-74758Niskie ryzyko· EPSS 15%
Use-after-free na stercie w komponencie protokołu RTMP Apache bRPC (wersje < 1.18.0) pozwala zdalnemu atakującemu zawiesić serwer RTMP bRPC przez wysłanie spreparowanego komunikatu kontrolnego Abort. Gdy komunikat Abort wskazuje aktualnie parsowany strumień chunków, obiekt jest usuwany podczas działania Feed(), co prowadzi do use-after-free.
- CVE-2026-74757Niskie ryzyko· EPSS 15%
Niekontrolowana alokacja zasobów w komponencie mcpack2pb Apache bRPC (wersja < 1.18.0) pozwala zdalnym atakującym zmusić serwer do alokacji dużej ilości pamięci przez wysłanie spreparowanego żądania mcpack z ogromną liczbą elementów tablicy. Parser ufa liczbie elementów z nagłówka bez walidacji względem rzeczywistego rozmiaru ładunku, co może spowodować preallokację około 16 GB pamięci wirtualnej.
- CVE-2026-74755Niskie ryzyko· EPSS 10%
W komponencie mcpack2pb Apache bRPC w wersjach poniżej 1.18.0 występuje niedomiar liczby całkowitej. Funkcja UnparsedValue::as_string() oblicza `_size - 1` bez walidacji `_size`; gdy value_size wynosi 0, wyrażenie ulega niedomiarowi do SIZE_MAX, resize() zgłasza std::length_error, a nieprzechwycony wyjątek powoduje przerwanie procesu (SIGABRT).
- CVE-2026-66392Niskie ryzyko· EPSS 1%
Apache bRPC w wersjach przed 1.18.0 weryfikuje łańcuch certyfikatów serwera, gdy włączona jest weryfikacja peera TLS, ale nie wiąże certyfikatu z oczekiwaną nazwą DNS lub adresem IP. Atakujący w sieci, który może przekierować lub przechwycić połączenie i posiada certyfikat wystawiony przez zaufany CA dla innej nazwy, może podszyć się pod docelowy punkt końcowy TLS.
- CVE-2026-61916Niskie ryzyko· EPSS 10%
Podatność typu out-of-bounds read w Apache bRPC przed wersją 1.18.0 występuje na platformach, gdzie typ plain char jest bez znaku (np. ARM64). Bajty wejściowe z ustawionym najwyższym bitem (0x80–0xFF) nie są normalizowane do zakresu signed char, przez co indeksy w tablicach wyszukiwania URL i nagłówków (case-insensitive) wykraczają poza ich rozmiar. Umożliwia to zdalnemu atakującemu wywołanie awarii procesu i odmowy usługi (DoS) poprzez spreparowane dane wejściowe.
- CVE-2026-61902Niskie ryzyko· EPSS 5%
Apache bRPC w wersjach przed 1.18.0 nie egzekwuje spójnie skonfigurowanego limitu max_body_size podczas parsowania HTTP/1 i HTTP/2 w trybie nieprogresywnym oraz odpowiedzi memcache i couchbase. Zdalny nieuwierzytelniony peer może spowodować buforowanie danych ponad limit, prowadząc do wyczerpania pamięci i odmowy usługi.
- CVE-2026-58064Niskie ryzyko· EPSS 10%
Implementacja protokołu Redis w Apache bRPC pozwalała parserowi poleceń inline na alokację i kopiowanie całego bufora połączenia przed otrzymaniem kompletnego polecenia zakończonego CRLF. Zdalny atakujący mógł wysyłać długie dane inline bez kończącego CRLF, zwiększając zużycie pamięci i obciążenie CPU, co potencjalnie prowadziło do odmowy usługi.
- CVE-2026-56388Niskie ryzyko· EPSS 20%
Parser poleceń Redis w Apache bRPC akceptuje pustą tablicę RESP jako nagłówek polecenia. Zdalny nieuwierzytelniony atakujący może wysłać pustą tablicę, a następnie ciąg bulk, powodując zapis poza granicami bufora i awarię procesu.
- CVE-2026-56387Niskie ryzyko· EPSS 19%
Parser AMF w komponencie RTMP Apache bRPC przyjmuje długości łańcuchów i liczby elementów tablic bezpośrednio z niezaufanych danych wejściowych. Zdalny nieuwierzytelniony atakujący może wysłać mały ładunek AMF z nadmierną zadeklarowaną długością lub liczbą elementów, powodując nadmierną alokację pamięci przed odrzuceniem niekompletnego ładunku.
- CVE-2026-56386Wysokie
Integer underflow i odczyt poza granicami bufora w parserze ramek DATA serwera HTTP/2 w Apache bRPC pozwala nieuwierzytelnionemu zdalnemu atakującemu na wywołanie odmowy usługi poprzez wysłanie zniekształconej ramki DATA z ustawioną flagą PADDED i zerową długością ładunku.
- CVE-2026-54427Niskie ryzyko· EPSS 5%
Nieograniczona rekurencja w parserze AMF w Apache bRPC przed 1.18.0 pozwala zdalnemu peerowi RTMP na zawieszenie procesu bRPC poprzez wysłanie głęboko zagnieżdżonych obiektów lub tablic AMF. Parser przetwarzał zagnieżdżone kontenery bez limitu głębokości, co mogło wyczerpać stos natywny.
- CVE-2026-54426Niskie ryzyko· EPSS 5%
Nieograniczona rekurencja w parserze odpowiedzi Redis w Apache bRPC przed 1.18.0 pozwala zdalnemu serwerowi Redis na zawieszenie procesu klienta bRPC poprzez zwrócenie głęboko zagnieżdżonej odpowiedzi tablicy RESP. Parser rekurencyjnie przetwarzał każdy poziom zagnieżdżenia bez limitu głębokości.
- CVE-2026-54425Niskie ryzyko· EPSS 16%
Nieograniczona rekurencja w dekoderze HTTP/2 HPACK Apache bRPC przed 1.18.0 pozwala zdalnym atakującym wywołać odmowę usługi przez wysłanie spreparowanego bloku nagłówków HTTP/2 z wieloma kolejnymi wpisami Dynamic Table Size Update. Każda aktualizacja była dekodowana rekurencyjnie, co mogło wyczerpać stos wątku.
- CVE-2026-48830Niskie ryzyko· EPSS 17%
Nieprawidłowe uwierzytelnianie w Apache bRPC do 1.17.0 pozwala zdalnemu nieuwierzytelnionemu atakującemu ominąć uwierzytelnianie chronionych wbudowanych punktów końcowych HTTP poprzez wysłanie najpierw wbudowanego żądania HTTP na tym samym połączeniu keep-alive HTTP/1.1. Gdy włączone jest ServerOptions.auth i wbudowane usługi HTTP są publicznie wystawione, pierwsze wbudowane żądanie może oznaczyć połączenie jako uwierzytelnione dla kolejnych żądań.
- CVE-2025-59789Wysokie
Nieograniczona rekurencja w komponencie json2pb Apache bRPC (wersje < 1.15.0) pozwala zdalnym atakującym na spowodowanie awarii serwera poprzez wysłanie głęboko zagnieżdżonych danych JSON. Przyczyną jest rekurencyjny parser rapidjson, który przy dużym zagłębieniu struktury może doprowadzić do przepełnienia stosu.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

