CRITICAL🇬🇧 English

CVE-2020-1914

Błąd logiczny w Facebook Hermes — potencjalne RCE przez JavaScript

CVSS 9.8v3.1pub. 2020-10-08upd. 2024-11-21

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.

🤖 Analiza AI
Jak działa

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.

Skutki

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.

Mitygacja

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.

Kogo dotyczy

Facebook Hermes we wszystkich wersjach przed commitem b2021df620824627f5a8c96615edbd1eb7fdddfc; dotyczy wyłącznie aplikacji korzystających z Hermes, które dopuszczają ewaluację niezaufanego kodu JavaScript

Uwagi

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 Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Facebook Hermes

    APP
    Facebook
    < 2020-10-01
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
RCE
CWE
Referencje

Powiązane podatności

CVE-2023-25933CRITICAL9.8PL ✓ten sam produkt

Type confusion w TypedArray silnika Hermes umożliwia RCE przez JavaScript

CVE-2023-28081CRITICAL9.8PL ✓ten sam produkt

Use-after-free w Facebook Hermes umożliwiający RCE przez payload JS

CVE-2023-23556CRITICAL9.8PL ✓ten sam produkt

RCE w Facebook Hermes — błąd zapisu poza granicami przy konwersji BigInt

CVE-2023-23557CRITICAL9.8PL ✓ten sam produkt

RCE w Facebook Hermes via type confusion przy kopiowaniu właściwości obiektów

CVE-2023-30470CRITICAL9.8PL ✓ten sam produkt

Use-after-free w Facebook Hermes umożliwiający RCE przez JavaScript