Błąd type confusion w implementacji TypedArray w silniku JavaScript Facebook Hermes pozwala atakującemu na wykonanie dowolnego kodu poprzez spreparowany, niezaufany kod JavaScript. Podatność ma ocenę CVSS 9.8 (CRITICAL) i jest zdalnie exploitowalna bez uwierzytelnienia.
▸ Pokaż oryginał (EN)
A type confusion bug in TypedArray prior to commit e6ed9c1a4b02dc219de1648f44cd808a56171b81 could have been used by a malicious attacker to execute arbitrary code via untrusted JavaScript. Note that this is only exploitable in cases where Hermes is used to execute untrusted JavaScript. Hence, most React Native applications are not affected.
Podatność wynika z błędu type confusion (CWE-843) w obsłudze obiektów TypedArray w silniku Hermes. Atakujący może dostarczyć specjalnie spreparowany kod JavaScript, który wykorzystuje nieprawidłowe założenia dotyczące typów obiektów w trakcie wykonania. Błąd dotyczy wersji kodu sprzed commitu e6ed9c1a4b02dc219de1648f44cd808a56171b81 w repozytorium GitHub projektu Hermes. Podatność jest exploitowalna wyłącznie w scenariuszach, w których silnik Hermes jest używany do wykonywania niezaufanego kodu JavaScript.
Skuteczne wykorzystanie podatności pozwala atakującemu na wykonanie dowolnego kodu (RCE) w kontekście aplikacji korzystającej z silnika Hermes, co może prowadzić do pełnego przejęcia kontroli nad procesem — naruszenia poufności, integralności i dostępności.
Należy zaktualizować silnik Hermes do wersji zawierającej fix wprowadzony commitem e6ed9c1a4b02dc219de1648f44cd808a56171b81. Szczegóły dostępne w oficjalnym security advisory Facebook oraz w repozytorium GitHub projektu Hermes. Dodatkowo zaleca się unikanie wykonywania niezaufanego kodu JavaScript przez silnik Hermes wszędzie tam, gdzie jest to możliwe.
Facebook Hermes — wersje silnika JavaScript poprzedzające commit e6ed9c1a4b02dc219de1648f44cd808a56171b81. Podatność dotyczy wyłącznie aplikacji, które używają Hermes do wykonywania niezaufanego kodu JavaScript; większość aplikacji React Native nie jest zagrożona.
Producent explicite wskazuje, że większość aplikacji React Native nie jest podatna — ryzyko dotyczy wyłącznie wdrożeń, w których Hermes wykonuje niezaufany kod JavaScript dostarczany z zewnątrz.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFacebook Hermes
APPFacebookwszystkie wersje
Powiązane podatności
Use-after-free w Facebook Hermes umożliwiający RCE przez JavaScript
RCE w Facebook Hermes — błąd zapisu poza granicami przy konwersji BigInt
RCE w Facebook Hermes via type confusion przy kopiowaniu właściwości obiektów
Use-after-free w Facebook Hermes umożliwiający RCE przez payload JS
Out-of-bounds write w Facebook Hermes przy obsłudze dużych tablic