Odebrany

CVE-2026-81755

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

Niekontrolowane zużycie zasobów w komponencie przesyłania strumieniowego RPC Apache bRPC (wersja < 1.18.0) umożliwia zdalnemu atakującemu wyczerpanie pamięci serwera i spowodowanie odmowy usługi poprzez wysłanie pojedynczego żądania RPC, które deklaruje nadmierną liczbę strumieni.

Główna przyczyna:
W funkcji przesyłania strumieniowego RPC klient może zadeklarować wiele strumieni w jednym żądaniu RPC, umieszczając dodatkowe identyfikatory strumieni w powtarzanym polu `stream_settings.extra_stream_ids` meta RPC. Po stronie serwera „StreamAccept” tworzy jeden strumień odpowiedzi dla każdego identyfikatora strumienia zadeklarowanego przez żądanie, bez ograniczania liczby strumieni akceptowanych w pojedynczym RPC. Rozmiar treści żądania jest ograniczony jedynie przez „max_body_size” (domyślnie 64MB), co wystarcza do przeniesienia milionów identyfikatorów strumienia. Każdy zaakceptowany strumień przydziela własną kolejkę wykonania bthread i powiązane zasoby, więc pojedyncze spreparowane żądanie może spowodować, że serwer utworzy ogromną liczbę strumieni i zużyje pamięć, co doprowadzi do odmowy usługi.

Dotknięte scenariusze:
Użyj serwera bRPC, który obsługuje strumieniowe przesyłanie RPC i wywołuje funkcję „StreamAccept”, aby akceptować strumienie od niezaufanych klientów.

Jak naprawić:
(Wybierz jedną z poniższych opcji) 
1. Zaktualizuj bRPC do wersji 1.18.0.
2. Zastosuj tę poprawkę: https://github.com/apache/brpc/pull/3493


Uwaga:
Poprawka dodaje nową flagę gflag `stream_max_streams_per_request` z domyślną wartością 64. Żądania deklarujące więcej strumieni niż limit są odrzucane przed utworzeniem jakiegokolwiek strumienia odpowiedzi. Aplikacje, które zgodnie z prawem muszą akceptować więcej niż 64 strumienie w jednym wywołaniu RPC, muszą podnieść tę flagę; w przeciwnym razie takie żądania nie powiodą się po zastosowaniu poprawki.

>_ 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