CVE-2026-79704
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W kliencie przesyłania strumieniowego RPC Apache bRPC (wersje od 1.11.0 do 1.17.0) na wszystkich platformach występuje luka w zabezpieczeniach umożliwiająca odczyt poza granicami. Klient tworzący wiele strumieni w pojedynczym wywołaniu RPC oczekuje, że odpowiedź serwera będzie zawierać dokładnie jeden extra_stream_id na każdy dodatkowy strumień. Ścieżka obsługi odpowiedzi indeksowała zwrócone identyfikatory przy użyciu lokalnie utworzonej liczby strumieni bez uprzedniego sprawdzenia rozmiaru zwróconej listy, więc złośliwy lub przejęty serwer (lub osoba atakująca na ścieżce) może wyzwolić odczyt poza granicami w kliencie, zwracając zniekształconą odpowiedź StreamSettings z mniejszą liczbą extra_stream_ids niż oczekiwano. Może to spowodować awarię procesu klienta (odmowa usługi) lub wyciek niezamierzonej zawartości pamięci do późniejszej obsługi strumienia; nadmiarowe identyfikatory nie mają prawidłowego mapowania strumienia klienta i są przetwarzane niespójnie.
Główna przyczyna:
Od wersji bRPC 1.11.0 klient może tworzyć wiele strumieni w jednym RPC za pomocą wsadowego StreamCreate. Oczekiwane zachowanie jest takie, że odpowiedź serwera musi zwrócić dokładnie (N-1) extra_stream_ids, gdzie N to liczba lokalnie utworzonych strumieni. W Controller::HandleStreamConnection ścieżka odpowiedzi odczytuje extra_stream_ids[i-1] dla każdego dodatkowego strumienia lokalnego bez uprzedniego porównania rozmiaru zwróconej listy z (N-1). Jeśli serwer zwróci mniej identyfikatorów, odczyt przebiega poza koniec zwróconej listy (odczyt poza zakresem); jeśli zwróci więcej, identyfikatory nadwyżkowe nie mają odpowiedniego strumienia po stronie klienta.
Dotknięte scenariusze:
Klient bRPC korzystający z wielostrumieniowego RPC (tworząc więcej niż jeden strumień w pojedynczym RPC), który łączy się z niezaufanym, złośliwym lub przejętym serwerem albo z serwerem, do którego można dotrzeć niezaufaną ścieżką sieciową. Serwer wysyła zniekształconą odpowiedź StreamSettings, aby wywołać problem.
Jak naprawić:
(Wybierz jedną z poniższych opcji)
1. Zaktualizuj bRPC do wersji 1.18.0, która rozwiązuje ten problem.
2. Zastosuj tę poprawkę: https://github.com/apache/brpc/pull/3485
Uwaga:
Poprawka powoduje, że klient odrzuca odpowiedzi, których liczba extra_stream_ids nie odpowiada dokładnie liczbie dodatkowych strumieni klienta. Takie niedopasowane odpowiedzi nie są teraz realizowane przez RPC w ERESPONSE i przechodzą przez istniejącą ścieżkę oczyszczania strumienia, zamiast być częściowo przetwarzane.
>_ Słabości (CWE)
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org