Odebrany

CVE-2026-84747

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

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

Konflikt interpretacji w implementacji protokołu HTTP w Apache bRPC (wersja < 1.18.0) na wszystkich platformach umożliwia zdalnym atakującym ominięcie reguł kontroli dostępu wymuszanych przez front proxy.

Główna przyczyna:
Funkcja wysyłania metody FindMethodPropertyByURI() w protokole HTTP bRPC dzieli ścieżkę żądania za pomocą rozdzielacza ciągów, który pomija puste pola, więc ścieżki zawierające puste segmenty ścieżki (kolejne ukośniki), takie jak //flagi, /flagi// i /flags//port, są wysyłane do tej samej metody, co ich zwinięta forma /flagi. Według RFC 3986 są to różne ścieżki. Front proxy, który wymusza listę ACL (np. blokuje dostęp do usług wbudowanych, takich jak /flags) dopasowuje tylko zwinięty formularz i dlatego przekazuje dopełniony literał do serwera bRPC, gdzie jest on wysyłany tak, jakby był zwiniętym formularzem. Ta różnica umożliwia //flags?setvalue= dotarcie do wbudowanej usługi, do której /flags nie ma dostępu. Ponadto implementacja HTTP/2 nigdy nie sprawdzała poprawności pseudonagłówka :path, więc żądania bez :path lub ze ścieżką :path, która nie zaczyna się od „/” ani nie ma gwiazdki „*”, w przeciwieństwie do sekcji 8.3.1 RFC 9113, nie zostały odrzucone.

Dotknięte scenariusze:
Wdrożenia Apache bRPC za frontowym serwerem proxy lub bramą, która wykonuje decyzje dotyczące kontroli dostępu (ACL) w dosłownej ścieżce żądania, gdzie serwer bRPC akceptuje ruch HTTP lub HTTP/2 z tego proxy. W takich wdrożeniach osoba atakująca może wysłać ścieżkę zawierającą puste segmenty ścieżki, aby dotrzeć do zasobu, który front proxy zamierzał zablokować.

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/3512

Uwaga:
Po zastosowaniu poprawki ścieżki żądań HTTP i HTTP/2 zawierające puste segmenty ścieżki (kolejne ukośniki) są domyślnie odrzucane, a wartości HTTP/2 :path, które są puste lub nie zaczynają się od „/” ani nie są równe „*”, są odrzucane. Wdrożenia zależne od poprzedniego łagodnego zachowania mogą je przywrócić, włączając flagę gflag -http_allow_empty_path_segments, co nie jest zalecane w przypadku serwerów narażonych na niezaufany ruch.

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