Odebrany

CVE-2026-87849

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

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

Analizator odpowiedzi usługi nazewnictwa Discovery w Apache bRPC (wersje < 1.18.0) wywołuje metody dostępu RapidJSON tylko obiektowe (FindMember) na wartościach JSON bez uprzedniego sprawdzania, czy te wartości są obiektami. Zniekształcona odpowiedź Discovery, której elementy danych/usługi lub lista instancji zawierają wpisy inne niż obiektowe (np. samą liczbę całkowitą), wyzwala na kliencie warunek wstępny dostępu do obiektu RapidJSON, odczytując pamięć poza dopuszczalnymi granicami i potencjalnie powodując awarię klienta bRPC.

Główna przyczyna:
W src/brpc/policy/discovery_naming_service.cpp funkcje DiscoveryNamingService::GetServers() i DiscoveryNames::ListDiscoveryNodes() uzyskują dostęp do wartości JSON za pomocą funkcji składowych na wartościach innych niż obiektowe. RapidJSON definiuje te operacje tylko dla typów obiektów; wywoływanie ich na obiekcie niebędącym obiektem narusza niezmiennik klasy i skutkuje niezdefiniowanym zachowaniem (odczyt poza zakresem), co często powoduje awarię procesu.

Dotknięte scenariusze:
Skonfigurowany przez operatora (lub naruszony) backend Discovery zwraca zniekształconą odpowiedź /discovery/nodes lub /discovery/fetchs, której wpisy danych/usługi/instancji nie są obiektami JSON, powodując awarię dowolnego klienta bRPC odświeżającego listę serwerów.

Jak naprawić:
1. Zaktualizuj bRPC do wersji 1.18.0 lub nowszej, co rozwiązuje ten problem.
2. Zastosuj tę poprawkę: https://github.com/apache/brpc/pull/3533

Poprawka sprawdza, czy dane odpowiedzi Discovery, dane dotyczące poszczególnych usług i wpisy instancji są obiektami JSON (i pomija wpisy węzłów/instancji niebędących obiektami oraz odrzuca wartości danych/usług niebędących obiektami) przed wywołaniem elementów członkowskich.

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