CVE-2026-85715
WysokieCVSS 7.5Streszczenie
Biblioteka ExifReader przed wersją 4.41.1 podczas parsowania plików HEIC lub AVIF ISO-BMFF ufa wartościom itemCount i extentCount z pola iloc, alokując obiekt extent w każdej iteracji zagnieżdżonej pętli. Gdy offsetSize, lengthSize, baseOffsetSize i indexSize wynoszą zero, pola nie zużywają bajtów wejściowych, a parser może zaalokować itemCount pomnożone przez extentCount obiektów bez limitu, powodując wyczerpanie pamięci i zatrzymanie procesu Node.js.
Ocena ryzyka
Złośliwy obraz może wywołać wzrost zużycia sterty o setki megabajtów i zatrzymać aplikację Node.js, powodując odmowę usługi dla aplikacji webowych, desktopowych lub mobilnych parsujących niezaufane obrazy.
Rekomendacja
Zaktualizuj ExifReader do wersji 4.41.1, która ogranicza ilość pracy wykonywanej podczas parsowania zamiast polegać na przesuwaniu offsetu.
Inne podatności w ExifReader
Zobacz wszystkie- CVE-2026-53496Średnie
ExifReader przed wersją 4.40.1 zawiera podatność w parserze ISO-BMFF, gdzie funkcje findMetaBox() i parseBox() nie sprawdzają, czy wymagane pola pozostają w DataView. Specjalnie przygotowane dane HEIC lub AVIF mogą prowadzić do niekontrolowanego odczytu wersji pełnego boxa lub odczytu nieistniejących pól rozmiaru, co powoduje wyjątek RangeError i może przerwać działanie aplikacji lub workera.
- CVE-2026-8814Średnie
Biblioteka exifreader przed wersją 4.39.0 jest podatna na nieprawidłowe obsługiwanie silnie skompresowanych danych (amplifikacja danych) podczas dekompresji metadanych PNG zTXt bez wymuszania wbudowanego maksymalnego rozmiaru wyjścia. Przy asynchronicznym parsowaniu, spreparowany plik PNG może spowodować przydzielenie nadmiernie dużej wartości Comment w pamięci.
- CVE-2026-8813Wysokie
Podatność dotyczy wersji pakietu exifreader przed 4.39.0. Spreparowany obraz zawierający znacznik ICC mluc może ustawić kontrolowaną przez atakującego liczbę rekordów wraz z zerowym rozmiarem rekordu. Podczas parsowania ExifReader wielokrotnie przetwarza ten sam rekord i dodaje wpisy do tablicy bez wystarczającej walidacji granic, powodując nadmierny wzrost pamięci. W aplikacjach przetwarzających obrazy dostarczone przez atakującego może to prowadzić do odmowy usługi przez wyczerpanie pamięci.
Oryginalny opis (angielski, źródło NVD)
ExifReader is a JavaScript Exif information parser. Prior to 4.41.1, ExifReader parses attacker-controlled HEIC or AVIF ISO-BMFF files in getItems() within src/image-header-iso-bmff-iloc.js and trusts iloc itemCount and extentCount values while allocating an extent object for every nested-loop iteration. When offsetSize, lengthSize, baseOffsetSize, and indexSize are zero, the extent fields consume no input bytes and the buffer offset does not advance, but the parser can still allocate up to itemCount multiplied by extentCount objects without an allocation budget. A small malicious iloc box can therefore cause hundreds of megabytes of heap growth or exhaust system memory, terminating a Node.js process and denying service to web, desktop, or mobile applications that parse untrusted images. The zero field widths are valid ISO-BMFF values indicating absent fields, so the vulnerable parser must bound work rather than relying on offset advancement. The issue is fixed in version 4.41.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

