W bibliotece Google gRPC przed datą 2017-02-22 istnieje podatność typu out-of-bounds write wynikająca z przepełnienia bufora sterty (heap-based buffer overflow) w funkcji parse_unix. Błąd umożliwia zdalnemu, nieuwierzytelnionemu napastnikowi wykonanie dowolnego kodu lub destabilizację aplikacji.
▸ Pokaż oryginał (EN)
Google gRPC before 2017-02-22 has an out-of-bounds write caused by a heap-based buffer overflow related to the parse_unix function in core/ext/client_channel/parse_address.c.
Podatność występuje w funkcji parse_unix znajdującej się w pliku core/ext/client_channel/parse_address.c, odpowiedzialnej za przetwarzanie adresów gniazd Unix. Na skutek nieprawidłowej obsługi danych wejściowych dochodzi do przepełnienia bufora w obszarze sterty (heap), co prowadzi do zapisu danych poza przydzielonym obszarem pamięci (CWE-787). Atakujący może spreparować odpowiednio złośliwe dane wejściowe przesyłane siecią, by wywołać ten błąd bez konieczności posiadania jakichkolwiek uprawnień.
Udane wykorzystanie podatności może pozwolić atakującemu na zdalne wykonanie dowolnego kodu (RCE) w kontekście procesu używającego biblioteki gRPC lub spowodować jej awarię (denial of service). Ze względu na pełny wpływ na poufność, integralność i dostępność (CVSS C:H/I:H/A:H), konsekwencje mogą obejmować całkowite przejęcie kontroli nad podatną aplikacją.
Należy zaktualizować bibliotekę gRPC do wersji wydanej po 2017-02-22, w której poprawka została wprowadzona (pull request #9833 w repozytorium GitHub grpc/grpc). Zaleca się również weryfikację i aktualizację wszystkich aplikacji korzystających z biblioteki gRPC zgodnie z referencjami producenta.
Google gRPC we wszystkich wersjach opublikowanych przed 2017-02-22
Podatność została wykryta za pomocą narzędzia OSS-Fuzz (zgłoszenie #661 w systemie Chromium bug tracker). Poprawka jest dostępna jako pull request #9833 w oficjalnym repozytorium grpc/grpc na GitHub.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HGrpc
APPGrpc≤ 1.1.2
Powiązane podatności
gRPC-Go: Authorization Bypass przez nieprawidłowy nagłówek HTTP/2 :path
Heap-based buffer overflow w Google gRPC — zapis poza granicami pamięci
Google gRPC — zapis poza granicami pamięci przez use-after-free w grpc_call_destroy
Zapis poza granicami bufora w Google gRPC (gpr_free)
Lack of error handling in the TCP server in Google's gRPC starting version 1.23 on posix-compatible platforms ...