CVE-2026-86147
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 46 - wyżej niż 46% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący z dostępem do portu usług wbudowanych może uszkodzić pliki systemowe lub zatrzymać profilowanie, powodując odmowę usługi (503) dla innych klientów. Ryzyko dotyczy każdego serwera bRPC wystawionego na niezaufane sieci.
Rekomendacja
Zaktualizuj Apache bRPC do wersji 1.18.0 lub zastosuj poprawkę z PR #3523. Po aktualizacji rozważ ograniczenie dostępu do wbudowanych usług sieciowo oraz dostosowanie flagi -max_profiling_seconds.
Inne podatności w Apache bRPC
Zobacz wszystkie- CVE-2026-86249Krytyczne
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-78334Krytyczne
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-56388Krytyczne
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-48830Krytyczne
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-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-2023-31039Krytyczne
Apache bRPC w wersji poniżej 1.5.0 zawiera podatność, która pozwala atakującemu na wykonanie dowolnego kodu poprzez parametr `ServerOptions::pid_file`. Atakujący, który może wpłynąć na ten parametr podczas uruchamiania serwera bRPC, może wykonać dowolny kod z uprawnieniami procesu bRPC.
- CVE-2026-90484Średnie
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-87849Średnie
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-86146Wysokie
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-84748Wysokie
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.
Oryginalny opis (angielski, źródło NVD)
External control of file name or path and uncontrolled resource consumption in Apache bRPC (version < 1.18.0) on all platforms allows remote attackers who can reach the builtin service port to create directories and truncate/overwrite files with the privileges of the server process, or to hold the process-wide CPU/contention profiler for an arbitrarily long time. Root Cause: 1. The builtin /flags service allows gflags carrying a validator to be modified at runtime via ?setvalue=. The bvar/mbvar dump path gflags (bvar_dump_file, bvar_dump_tabs, mbvar_dump_file) were registered with an accept-anything validator whose only purpose was to wake the dumping thread. A remote attacker could therefore repoint the dump path (e.g. GET /flags/bvar_dump_file?setvalue=/victim/dir/target followed by GET /flags/bvar_dump?setvalue=true, or the equivalent for mbvar_dump_file, which is used verbatim without a forced suffix), making the dumping thread recursively create directories and open/truncate files at attacker-chosen locations. Tab names in bvar_dump_tabs were appended to the path without sanitization, allowing '..' to escape the configured directory. 2. The /pprof builtin service did not clamp the ?seconds= parameter to FLAGS_max_profiling_seconds (a limit that /hotspots enforced). A single request such as ?seconds=2147483647 made the handler sleep for decades while holding the process-wide gperftools CPU profiler or bthread contention profiler, so /hotspots/cpu and /hotspots/contention returned 503 for everyone else during that time. Affected Scenarios: Any Apache bRPC server exposing the builtin services (enabled by default on the same port as normal RPC traffic) to untrusted networks. 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/3523 Note: After the fix, bvar_dump_file, bvar_dump_tabs and mbvar_dump_file can no longer be modified at runtime through the /flags builtin service. They can still be changed programmatically via google::SetCommandLineOption(), taking effect on the next dump cycle. The profiling duration of /pprof is now capped by the -max_profiling_seconds gflag (default 300 seconds), which can be adjusted by the server owner.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

