Google gRPC w wersjach sprzed 5 kwietnia 2017 r. zawiera podatność typu heap-based buffer overflow w komponencie obsługi błędów (core/lib/iomgr/error.c), umożliwiającą zapis poza granicami przydzielonego bufora. Podatność otrzymała ocenę krytyczną CVSS 9.8, co oznacza możliwość zdalnego wykorzystania bez jakiejkolwiek autoryzacji.
▸ Pokaż oryginał (EN)
Google gRPC before 2017-04-05 has an out-of-bounds write caused by a heap-based buffer overflow related to core/lib/iomgr/error.c.
Błąd polega na przepełnieniu bufora na stercie (heap), które prowadzi do zapisu danych poza przydzielonym obszarem pamięci (CWE-787: Out-of-bounds Write). Podatny kod znajduje się w pliku core/lib/iomgr/error.c, odpowiedzialnym za zarządzanie błędami w warstwie I/O. Atakujący może spreparować odpowiednie dane wejściowe przesyłane przez sieć, aby wywołać przepełnienie i nadpisać krytyczne struktury pamięci procesu. Wektor ataku jest sieciowy, nie wymaga interakcji użytkownika ani posiadania jakichkolwiek uprawnień.
Udane wykorzystanie podatności może umożliwić atakującemu zdalne wykonanie dowolnego kodu (RCE) na podatnym serwerze lub kliencie gRPC, a w konsekwencji przejęcie pełnej kontroli nad systemem, ujawnienie poufnych danych lub doprowadzenie do niedostępności usługi.
Należy zaktualizować bibliotekę gRPC do wersji zawierającej poprawkę wprowadzoną po 2017-04-05, zgodnie z pull requestem #10492 dostępnym w repozytorium producenta (https://github.com/grpc/grpc/pull/10492). Zaleca się jak najszybsze zastosowanie patcha we wszystkich środowiskach korzystających z biblioteki gRPC.
Google gRPC we wszystkich wersjach wydanych przed 2017-04-05 (commit naprawiający błąd dostępny w pull request #10492 w repozytorium GitHub grpc/grpc).
Podatność została wykryta za pośrednictwem projektu OSS-Fuzz (zgłoszenie nr 1018), co potwierdza jej odnalezienie metodą automatycznego fuzzingu przed potencjalnym odkryciem przez złośliwych aktorów.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HGrpc
APPGrpc≤ 1.2.2
Powiązane podatności
gRPC-Go: Authorization Bypass przez nieprawidłowy nagłówek HTTP/2 :path
Google gRPC — zapis poza granicami pamięci przez use-after-free w grpc_call_destroy
Zapis poza granicami bufora w Google gRPC (gpr_free)
Przepełnienie bufora sterty (heap buffer overflow) w Google gRPC — zapis poza granicami
Lack of error handling in the TCP server in Google's gRPC starting version 1.23 on posix-compatible platforms ...