Podatność logiczna w silniku JavaScript Facebook Hermes umożliwia atakującemu odczyt danych spoza dozwolonego zakresu pamięci lub potencjalne wykonanie dowolnego kodu. Zagrożenie dotyczy aplikacji, które zezwalają na wykonywanie niezaufanego kodu JavaScript.
▸ Pokaż oryginał (EN)
A logic vulnerability when handling the SaveGeneratorLong instruction in Facebook Hermes prior to commit b2021df620824627f5a8c96615edbd1eb7fdddfc allows attackers to potentially read out of bounds or theoretically 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 logiczny (CWE-670) występuje podczas obsługi instrukcji SaveGeneratorLong w silniku Hermes. Atakujący może dostarczyć specjalnie spreparowany kod JavaScript, który wyzwoli nieprawidłową ścieżkę wykonania. W wyniku tego możliwy jest odczyt danych spoza zarezerwowanego obszaru pamięci (out-of-bounds read), a w warunkach teoretycznych również wykonanie arbitralnego kodu. Podatność jest eksploitowalna wyłącznie wtedy, gdy aplikacja korzystająca z Hermes umożliwia ewaluację niezaufanego JavaScript.
Atakujący może odczytać dane spoza dozwolonego obszaru pamięci lub — teoretycznie — wykonać dowolny kod w kontekście aplikacji. Większość aplikacji React Native nie jest podatna, ponieważ domyślnie nie zezwalają na wykonywanie niezaufanego JavaScript.
Należy zaktualizować Facebook Hermes do wersji zawierającej commit b2021df620824627f5a8c96615edbd1eb7fdddfc lub nowszej. Dodatkowo należy upewnić się, że aplikacja nie zezwala na ewaluację niezaufanego kodu JavaScript — brak tej funkcjonalności eliminuje możliwość eksploatacji.
Facebook Hermes we wszystkich wersjach przed commitem b2021df620824627f5a8c96615edbd1eb7fdddfc; dotyczy wyłącznie aplikacji korzystających z Hermes, które dopuszczają ewaluację niezaufanego kodu JavaScript
Podatność ma charakter teoretyczny w zakresie RCE — producent wskazuje, że większość aplikacji React Native nie jest podatna, ponieważ standardowo nie dopuszczają wykonywania niezaufanego JavaScript. Eksploatacja wymaga spełnienia dodatkowego warunku po stronie aplikacji.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFacebook Hermes
APPFacebook< 2020-10-01
Powiązane podatności
Type confusion w TypedArray silnika Hermes umożliwia RCE przez JavaScript
Use-after-free w Facebook Hermes umożliwiający RCE przez payload JS
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 JavaScript