CVE-2025-64505
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 8 - wyżej niż 8% wszystkich znanych CVE
Streszczenie
LIBPNG to biblioteka referencyjna używana w aplikacjach do odczytu, tworzenia i manipulacji plikami obrazów rastrowych PNG. Przed wersją 1.6.51 w funkcji png_do_quantize biblioteki libpng istnieje podatność polegająca na nadmiernym odczycie bufora sterty podczas przetwarzania plików PNG z nieprawidłowymi indeksami palety. Podatność występuje, gdy granice tablicy palette_lookup nie są walidowane względem danych obrazu dostarczonych z zewnątrz, co pozwala atakującemu na stworzenie pliku PNG z indeksami palety poza zakresem, wywołującymi dostęp do pamięci poza granicami. Problem został naprawiony w wersji 1.6.51.
Ocena ryzyka
Atakujący może spowodować odczyt poza granicami bufora, co może prowadzić do wycieku informacji lub awarii aplikacji.
Rekomendacja
Zaktualizuj libpng do wersji 1.6.51 lub nowszej.
Inne podatności w libpng
Zobacz wszystkie- CVE-2026-58936Nieznane
W funkcji png_set_tRNS pliku pngset.c występuje możliwe uszkodzenie pamięci spowodowane użyciem po zwolnieniu (use-after-free). Może to doprowadzić do zdalnego wykonania kodu bez potrzeby dodatkowych uprawnień wykonawczych.
- CVE-2026-33636Wysokie
W libpng w wersjach 1.6.36–1.6.55 ścieżka ekspansji palety zoptymalizowana dla ARM/AArch64 Neon zawiera błąd odczytu i zapisu poza granicami bufora. Przy przetwarzaniu końcowego fragmentu wiersza 8-bitowej palety następuje dereferencja wskaźników przed początkiem bufora i zapis poza zakresem, co jest osiągalne przy dekodowaniu złośliwego pliku PNG, gdy Neon jest włączony. Wersja 1.6.56 naprawia problem.
- CVE-2026-33416Wysokie
W bibliotece libpng w wersjach 1.2.1 do 1.6.55 funkcje `png_set_tRNS` i `png_set_PLTE` aliasują bufor alokowany na stercie między `png_struct` a `png_info`, współdzieląc jedną alokację między dwiema strukturami o niezależnych cyklach życia. Wywołanie `png_free_data` (z `PNG_FREE_TRNS` lub `PNG_FREE_PLTE`) zwalnia bufor przez `info_ptr`, podczas gdy odpowiedni wskaźnik `png_ptr` pozostaje wiszący, a kolejne funkcje transformacji wierszy dereferencjonują i w niektórych ścieżkach zapisują do zwolnionej pamięci. Drugie wywołanie `png_set_tRNS` lub `png_set_PLTE` ma ten sam efekt, ponieważ obie funkcje wewnętrznie wywołują `png_free_data` przed realokacją bufora `info_ptr`. Wersja 1.6.56 naprawia problem.
- CVE-2016-10087Wysokie
Funkcja png_set_text_2 w libpng przed wersją 1.0.67, 1.2.57, 1.4.20, 1.5.28 i 1.6.27 pozwala na ataki zależne od kontekstu, które mogą prowadzić do dereferencji wskaźnika NULL. Problem ten występuje podczas ładowania fragmentu tekstowego do struktury png, usuwania tekstu, a następnie dodawania innego fragmentu tekstowego.
- CVE-2016-3751Wysokie
Nieokreślona podatność w libpng przed wersją 1.6.20, używana w systemach Android 4.x przed 4.4.4, 5.0.x przed 5.0.2, 5.1.x przed 5.1.1 oraz 6.x przed 1 lipca 2016 roku, pozwala atakującym na uzyskanie uprawnień poprzez spreparowaną aplikację.
- CVE-2015-8540Wysokie
W funkcji png_check_keyword w pliku pngwutil.c w libpng występuje problem z niedoborem całkowitym, który może być wykorzystany przez zdalnych atakujących. Umożliwia to wywołanie odczytu poza dozwolonym zakresem poprzez użycie znaku spacji jako słowa kluczowego w obrazie PNG.
- CVE-2015-8472Wysokie
Przepełnienie bufora w funkcji png_set_PLTE w libpng przed wersją 1.0.65 oraz w wersjach 1.1.x, 1.2.x przed 1.2.55, 1.3.x, 1.4.x przed 1.4.18, 1.5.x przed 1.5.25 i 1.6.x przed 1.6.20 pozwala zdalnym atakującym na spowodowanie awarii aplikacji lub potencjalnie innych nieokreślonych skutków poprzez małą wartość głębokości bitowej w kawałku IHDR (nagłówek obrazu) w obrazie PNG.
- CVE-2015-0973Wysokie
Przepełnienie bufora w funkcji png_read_IDAT_data w pliku pngrutil.c w libpng przed wersją 1.5.21 oraz 1.6.x przed wersją 1.6.16 umożliwia atakującym, zależnie od kontekstu, wykonanie dowolnego kodu poprzez dane IDAT o dużej szerokości.
- CVE-2014-9495Wysokie
W funkcji png_combine_row w libpng przed wersją 1.5.21 oraz 1.6.x przed wersją 1.6.16 występuje przepełnienie bufora oparte na stercie, które może pozwolić atakującym na wykonanie dowolnego kodu poprzez 'bardzo szeroki przeplatany' obraz PNG na systemach 64-bitowych.
- CVE-2015-8126Wysokie
Wielokrotne przepełnienia bufora w funkcjach png_set_PLTE i png_get_PLTE w libpng przed wersją 1.0.64 oraz w wersjach 1.1.x, 1.2.x, 1.3.x, 1.4.x, 1.5.x i 1.6.x przed odpowiednimi wersjami, mogą pozwolić zdalnym atakującym na spowodowanie awarii aplikacji lub potencjalnie innych nieokreślonych skutków poprzez małą wartość głębi bitowej w kawałku IHDR (nagłówek obrazu) w obrazie PNG.
Oryginalny opis (angielski, źródło NVD)
LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. Prior to version 1.6.51, a heap buffer over-read vulnerability exists in libpng's png_do_quantize function when processing PNG files with malformed palette indices. The vulnerability occurs when palette_lookup array bounds are not validated against externally-supplied image data, allowing an attacker to craft a PNG file with out-of-range palette indices that trigger out-of-bounds memory access. This issue has been patched in version 1.6.51.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

