CVE-2014-9495
WysokieStreszczenie
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.
Ocena ryzyka
Atakujący mogą wykorzystać tę podatność do zdalnego wykonania kodu, co może prowadzić do przejęcia kontroli nad systemem lub wycieku danych.
Rekomendacja
Zaleca się aktualizację libpng do najnowszej wersji, aby usunąć tę podatność oraz monitorowanie systemów pod kątem podejrzanych obrazów PNG.
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-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.
Oryginalny opis (angielski, źródło NVD)
Heap-based buffer overflow in the png_combine_row function in libpng before 1.5.21 and 1.6.x before 1.6.16, when running on 64-bit systems, might allow context-dependent attackers to execute arbitrary code via a "very wide interlaced" PNG image.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

