CRITICAL🇬🇧 English

CVE-2023-23556

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

CVSS 9.8v3.1pub. 2023-05-18upd. 2025-01-31

Błąd w mechanizmie konwersji BigInt do Number w silniku JavaScript Hermes umożliwia wykonanie dowolnego kodu (RCE) poprzez zapis poza granicami bufora (out-of-bound write). Podatność dotyczy wyłącznie środowisk, w których Hermes wykonuje niezaufany kod JavaScript.

Pokaż oryginał (EN)

An error in BigInt conversion to Number in Hermes prior to commit a6dcafe6ded8e61658b40f5699878cd19a481f80 could have been used by a malicious attacker to execute arbitrary code due to an out-of-bound write. Note that this bug is only exploitable in cases where Hermes is used to execute untrusted JavaScript. Hence, most React Native applications are not affected.

🤖 Analiza AI
Jak działa

Podczas konwersji wartości typu BigInt do typu Number w silniku Hermes dochodzi do nieprawidłowego zapisu danych poza przydzielonym obszarem pamięci (CWE-787: out-of-bound write). Błąd ten może zostać wykorzystany przez atakującego poprzez dostarczenie spreparowanego kodu JavaScript do wykonania przez podatną wersję silnika. Podatność jest możliwa do wyeksploatowania jedynie wtedy, gdy Hermes przetwarza niezaufany JavaScript — np. pobierany dynamicznie ze źródeł zewnętrznych.

Skutki

Atakujący może wykonać dowolny kod w kontekście procesu uruchamiającego silnik Hermes, co potencjalnie prowadzi do pełnego przejęcia kontroli nad aplikacją lub urządzeniem. Zagrożone są poufność, integralność oraz dostępność systemu.

Mitygacja

Należy zaktualizować silnik Hermes do wersji zawierającej commit a6dcafe6ded8e61658b40f5699878cd19a481f80 lub nowszej. Zgodnie z referencjami producenta należy zastosować patche dostępne w repozytorium GitHub facebook/hermes oraz w poradniku bezpieczeństwa Facebook.

Kogo dotyczy

Facebook Hermes we wszystkich wersjach poprzedzających commit a6dcafe6ded8e61658b40f5699878cd19a481f80. Większość aplikacji React Native nie jest podatna, o ile nie wykonują niezaufanego kodu JavaScript.

Uwagi

Podatność ma ograniczony zakres — jest exploitowalna wyłącznie w aplikacjach używających Hermes do wykonywania niezaufanego kodu JavaScript (np. pobieranego dynamicznie). Standardowe aplikacje React Native bundlujące JavaScript statycznie nie są dotknięte tym problemem, co potwierdza oficjalny opis producenta.

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
    < 2023-02-02
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
RCE
CWE
Referencje

Powiązane podatności

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

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

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

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

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-2022-32234CRITICAL9.8PL ✓ten sam produkt

Out-of-bounds write w Facebook Hermes przy obsłudze dużych tablic