CVE-2025-62490
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
W funkcji js_print_object w QuickJS drukowanie tablicy najpierw pobiera długość, a następnie iteruje po niej, mimo że drukowanie wartości nie jest wolne od efektów ubocznych. Callback zdefiniowany przez atakującego może zmienić rozmiar tablicy podczas js_print_value, powodując użycie po zwolnieniu; podobny problem występuje przy drukowaniu obiektów Map i Set.
Ocena ryzyka
Może to prowadzić do uszkodzenia pamięci i potencjalnego wykonania kodu w aplikacjach osadzających QuickJS i przetwarzających niezaufane dane.
Rekomendacja
Zaktualizuj QuickJS do wersji zawierającej poprawkę i unikaj drukowania niezaufanych struktur danych.
Inne podatności w QuickJS
Zobacz wszystkie- CVE-2026-88378Krytyczne
QuickJS commit 04be24600 zawiera podatność na zapis poza zakresem sterty w JS_ReadFunctionTag().
- CVE-2025-12745Średnie
W QuickJS do wersji eb2c89087def1829ed99630cb14b549d7a98408c funkcja js_array_buffer_slice w pliku quickjs.c powoduje nadmierne odczytanie bufora (buffer over-read). Atak wymaga lokalnego wykonania, a exploit jest publicznie dostępny.
- CVE-2025-62496Wysokie
Podatność w silniku QuickJS podczas tworzenia BigInt z ciągu znaków o bardzo dużej liczbie cyfr. Obliczenie liczby bitów powoduje przepełnienie liczb całkowitych, co prowadzi do zaniżenia rozmiaru bufora i zapisu poza granicami sterty (heap out-of-bounds write).
- CVE-2025-62495Wysokie
Podatność typu integer overflow w silniku wyrażeń regularnych QuickJS (libregexp) z powodu niespójnej reprezentacji rozmiaru bufora bajtkodu. Duże lub złożone wyrażenie regularne może spowodować przepełnienie rozmiaru i zapis poza granicami bufora.
- CVE-2025-62494Wysokie
W silniku QuickJS występuje podatność typu type confusion podczas obsługi operacji dodawania ciągów (+). Podczas konwersji prawego operandu może zostać wywołany callback, który zmienia typ lewego operandu, co prowadzi do niezgodności typów i potencjalnego dostępu poza granicami pamięci.
- CVE-2025-62493Średnie
Podatność w silniku QuickJS w funkcji konwersji BigInt na string (js_bigint_to_string1) wynika z błędnego obliczenia liczby cyfr potrzebnych do reprezentacji, co prowadzi do odczytu pamięci poza zaalokowaną strukturą BigInt. W pewnych przypadkach brzegowych pętla konwersji odczytuje dane z sąsiedniego limb, powodując out-of-bounds read.
- CVE-2025-62492Średnie
W silniku QuickJS występuje błąd precyzji arytmetyki zmiennoprzecinkowej w implementacji TypedArray.prototype.indexOf() przy ujemnym argumencie fromIndex. Gdy wartość jest bardzo mała (np. -1e-20), dodanie długości tablicy może stracić precyzję i dać indeks równy długości, powodując odczyt poza granicami bufora o jeden element. Może to prowadzić do ujawnienia informacji z sąsiedniej pamięci.
- CVE-2025-62491Wysokie
W bibliotece standardowej silnika QuickJS występuje use-after-free podczas iteracji po liście odrzuconych obietnic (rejected_promise_list). Złośliwy getter właściwości obiektu Error może wywołać catch() na tej samej obietnicy, co usuwa i zwalnia bieżący wpis listy, a pętla dalej używa zwolnionego wskaźnika.
Oryginalny opis (angielski, źródło NVD)
In quickjs, in js_print_object, when printing an array, the function first fetches the array length and then loops over it. The issue is, printing a value is not side-effect free. An attacker-defined callback could run during js_print_value, during which the array could get resized and len1 become out of bounds. This results in a use-after-free.A second instance occurs in the same function during printing of a map or set objects. The code iterates over ms->records list, but once again, elements could be removed from the list during js_print_value call.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

