Funkcja get_stringidx_fromdex() w narzędziu Facebook Redex może odczytać dane spoza dozwolonego obszaru pamięci podczas przetwarzania tabeli indeksów ciągów znaków z pliku APK. Błąd może prowadzić do zdalnego wykonania kodu (RCE) przy analizie spreparowanego pliku APK pochodzącego od zewnętrznego źródła.
▸ Pokaż oryginał (EN)
DexLoader function get_stringidx_fromdex() in Redex prior to commit 3b44c64 can load an out of bound address when loading the string index table, potentially allowing remote code execution during processing of a 3rd party Android APK file.
Podczas ładowania pliku APK moduł DexLoader wywołuje funkcję get_stringidx_fromdex(), która wczytuje tabelę indeksów ciągów znaków (string index table). Na skutek braku odpowiedniej walidacji rozmiaru lub wartości indeksu (CWE-125: out-of-bounds read, CWE-1284: nieprawidłowa walidacja wielkości indeksu) funkcja może załadować adres wykraczający poza przydzielony bufor pamięci. Przetworzenie złośliwie spreparowanego pliku APK może tym samym doprowadzić do wykonania niezamierzonego kodu.
Atakujący dostarczający specjalnie spreparowany plik APK może doprowadzić do zdalnego wykonania kodu (RCE) w kontekście aplikacji przetwarzającej plik, uzyskując potencjalnie pełną kontrolę nad systemem ofiary — zagrożone jest poufność, integralność i dostępność danych.
Należy zaktualizować Facebook Redex do wersji zawierającej commit 3b44c640346b77bfb7ef36e2413688dd460288d2 lub nowszej. Patch dostępny jest w oficjalnym repozytorium projektu na GitHub: https://github.com/facebook/redex/commit/3b44c640346b77bfb7ef36e2413688dd460288d2
Facebook Redex we wszystkich wersjach poprzedzających commit 3b44c64 w repozytorium GitHub.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFacebook Redex
APPFacebook< 2022-11-04
Powiązane podatności
RCE bez uwierzytelnienia w React Server Components (deserializacja)
Command injection w Facebook tac_plus umożliwiający zdalne wykonanie kodu
Use-after-free w Facebook Hermes umożliwiający RCE przez payload JS
RCE w Facebook Hermes via type confusion przy kopiowaniu właściwości obiektów
RCE w Facebook Hermes — błąd zapisu poza granicami przy konwersji BigInt