Błąd konwersji liczb całkowitych (CWE-681) w generatorze bytecode silnika JavaScript Facebook Hermes umożliwia wykonanie operacji Out-Of-Bounds i w konsekwencji zdalne wykonanie dowolnego kodu (RCE). Podatność jest krytyczna (CVSS 9.8) i nie wymaga żadnego uwierzytelnienia ani interakcji użytkownika.
▸ Pokaż oryginał (EN)
An integer conversion error in Hermes bytecode generation, prior to commit 6aa825e480d48127b480b08d13adf70033237097, could have been used to perform Out-Of-Bounds operations and subsequently execute arbitrary code. Note that this is only exploitable in cases where Hermes is used to execute untrusted JavaScript. Hence, most React Native applications are not affected.
Podczas generowania bytecode w silniku Hermes dochodzi do nieprawidłowej konwersji wartości całkowitych, co prowadzi do operacji odczytu lub zapisu poza granicami przydzielonej pamięci (Out-Of-Bounds). Atakujący może przygotować specjalnie spreparowany kod JavaScript, który — po przetworzeniu przez podatną wersję Hermes — doprowadzi do wykonania dowolnego kodu w kontekście procesu wykonującego ten skrypt. Exploitacja jest możliwa wyłącznie wtedy, gdy Hermes przetwarza niezaufany kod JavaScript.
Atakujący może wykonać dowolny kod w kontekście aplikacji korzystającej z Hermes, co może prowadzić do pełnego przejęcia kontroli nad procesem, ujawnienia danych lub ich modyfikacji.
Należy zaktualizować Facebook Hermes do wersji zawierającej commit 6aa825e480d48127b480b08d13adf70033237097 lub nowszej, zgodnie z referencjami producenta (https://github.com/facebook/hermes/commit/6aa825e480d48127b480b08d13adf70033237097). Dodatkowo zaleca się upewnienie się, że Hermes nie jest używany do wykonywania niezaufanego kodu JavaScript.
Facebook Hermes — wersje poprzedzające commit 6aa825e480d48127b480b08d13adf70033237097. Podatność dotyczy wyłącznie wdrożeń, w których Hermes wykonuje niezaufany kod JavaScript; większość aplikacji React Native nie jest zagrożona.
Producent explicite wskazuje, że podatność jest exploitowalna jedynie w scenariuszach, gdy Hermes przetwarza niezaufany kod JavaScript — większość aplikacji React Native nie jest narażona.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFacebook Hermes
APPFacebook< 2022-09-27
Powiązane podatności
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
Type confusion w TypedArray silnika Hermes umożliwia RCE przez JavaScript
Use-after-free w Facebook Hermes umożliwiający RCE przez JavaScript