Podatność integer overflow w silniku JavaScript Facebook Hermes powoduje warunek write-what-where, który może umożliwić atakującemu wykonanie dowolnego kodu. Dotyczy wyłącznie aplikacji, które pozwalają na ewaluację niezaufanego kodu JavaScript.
▸ Pokaż oryginał (EN)
A write-what-where condition in hermes caused by an integer overflow, prior to commit 5b6255ae049fa4641791e47fad994e8e8c4da374 allows attackers to potentially execute arbitrary code via crafted JavaScript. Note that this is only exploitable if the application using Hermes permits evaluation of untrusted JavaScript. Hence, most React Native applications are not affected.
Błąd wynika z przepełnienia liczby całkowitej (integer overflow, CWE-190), które prowadzi do warunku write-what-where (CWE-680) — atakujący może kontrolować, co i gdzie zostaje zapisane w pamięci procesu. Exploit wymaga dostarczenia specjalnie spreparowanego kodu JavaScript do silnika Hermes. Podatność istnieje w wersjach poprzedzających commit 5b6255ae049fa4641791e47fad994e8e8c4da374 w repozytorium projektu.
Atakujący może potencjalnie wykonać dowolny kod (RCE) w kontekście aplikacji wykorzystującej silnik Hermes, co grozi pełnym przejęciem kontroli nad procesem, naruszeniem poufności oraz integralności danych.
Należy zaktualizować Facebook Hermes do wersji zawierającej commit 5b6255ae049fa4641791e47fad994e8e8c4da374 lub nowszy. Dodatkowo zaleca się przegląd aplikacji pod kątem tego, czy silnik Hermes jest używany do ewaluacji niezaufanego JavaScript — jeśli nie, ryzyko jest minimalne.
Facebook Hermes — wersje poprzedzające commit 5b6255ae049fa4641791e47fad994e8e8c4da374. Podatność dotyczy wyłącznie aplikacji, które jawnie zezwalają na ewaluację niezaufanego kodu JavaScript; większość aplikacji React Native nie jest narażona.
Producent wyraźnie zaznacza w opisie podatności, że większość aplikacji React Native nie jest podatna, ponieważ nie dopuszczają one ewaluacji niezaufanego kodu JavaScript — konieczna jest ocena indywidualnego scenariusza użycia silnika Hermes w danej aplikacji.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFacebook Hermes
APPFacebook< 0.12.0
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