Podatności libpng
18 znanych podatności CVE w libpng, przetłumaczonych i ocenionych.
- 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.
- CVE-2026-40930Średnie
LIBPNG w wersji 1.8.0 zawiera błąd w parserze APNG w trybie push: trzy ścieżki usuwania ramek międzyklatkowych nie konsumują treści ramki i CRC, co pozwala atakującemu na wstrzyknięcie bajtów w ignorowanej ramce pomocniczej, które są interpretowane jako nowy nagłówek ramki przy następnym wywołaniu png_process_data.
- CVE-2026-34757Średnie
W LIBPNG od wersji 1.0.9 do przed 1.6.57 przekazanie wskaźnika uzyskanego z png_get_PLTE, png_get_tRNS lub png_get_hIST z powrotem do odpowiedniego settera na tej samej parze png_struct/png_info powoduje, że setter czyta ze zwolnionej pamięci i kopiuje jej zawartość do bufora zastępczego. Setter zwalnia wewnętrzny bufor przed skopiowaniem ze wskaźnika dostarczonego przez wywołującego, który teraz wskazuje na zwolniony obszar. Zwolniony region może zawierać nieaktualne dane (powodując ciche uszkodzenie metadanych chunk) lub dane z późniejszych alokacji sterty (wyciekając niepowiązane zawartości sterty do struktury chunk). Podatność naprawiono w wersji 1.6.57.
- CVE-2026-25646Wysokie
W bibliotece LIBPNG przed wersją 1.6.55 występuje podatność na odczyt poza zakresem w funkcji png_set_quantize(). Przy wywołaniu bez histogramu i gdy liczba kolorów w palecie przekracza dwukrotność maksymalnej obsługiwanej przez wyświetlacz, niektóre palety powodują nieskończoną pętlę odczytującą dane poza przydzielonym buforem sterty. Obrazy wywołujące podatność są zgodne ze specyfikacją PNG.
- CVE-2025-66293Wysokie
LIBPNG to biblioteka referencyjna do odczytu, tworzenia i manipulacji plikami PNG. Przed wersją 1.6.52 podatność typu out-of-bounds read w uproszczonym API libpng pozwala na odczyt do 1012 bajtów poza tablicę png_sRGB_base[512] podczas przetwarzania prawidłowych obrazów PNG z paletą, częściową przezroczystością i korekcją gamma. Pliki wywołujące tę podatność są zgodne ze specyfikacją PNG; błąd leży w wewnętrznym zarządzaniu stanem libpng.
- CVE-2025-65018Wysokie
LIBPNG w wersjach od 1.6.0 do przed 1.6.51 zawiera podatność przepełnienia bufora na stercie w funkcji uproszczonego API png_image_finish_read podczas przetwarzania 16-bitowych przeplotowych plików PNG z 8-bitowym formatem wyjściowym. Spreparowane przez atakującego pliki powodują zapisy poza granicami bufora. Problem naprawiono w wersji 1.6.51.
- CVE-2025-64720Wysokie
LIBPNG to biblioteka referencyjna do odczytu, tworzenia i manipulacji plikami PNG. Od wersji 1.6.0 do przed 1.6.51 istnieje podatność odczytu poza granicami w png_image_read_composite podczas przetwarzania obrazów paletowych z włączoną flagą PNG_FLAG_OPTIMIZE_ALPHA. Kod komponowania palety w png_init_read_transformations niepoprawnie stosuje komponowanie tła podczas premultiplikacji, naruszając niezmiennik component ≤ alpha × 257 wymagany przez uproszczone API PNG. Problem naprawiono w wersji 1.6.51.
- CVE-2025-64506Średnie
W libpng od wersji 1.6.0 do przed 1.6.51 istnieje podatność polegająca na nadmiernym odczycie bufora sterty w funkcji png_write_image_8bit podczas przetwarzania obrazów 8-bitowych przez uproszczone API zapisu z włączonym convert_to_8bit. Warunek ochronny nieprawidłowo przepuszcza dane 8-bitowe do kodu oczekującego danych 16-bitowych, powodując odczyt do 2 bajtów poza granicami bufora.
- CVE-2025-64505Średnie
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

