CVE-2025-66293
WysokieCVSS 7.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 28 - wyżej niż 28% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Przetwarzanie specjalnie spreparowanego, ale zgodnego ze specyfikacją pliku PNG może doprowadzić do odczytu poza granicami pamięci, co może skutkować ujawnieniem danych lub awarią aplikacji. Może to być wykorzystane do ataków na aplikacje przetwarzające obrazy PNG.
Rekomendacja
Zaktualizuj libpng do wersji 1.6.52 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 1.6.52, an out-of-bounds read vulnerability in libpng's simplified API allows reading up to 1012 bytes beyond the png_sRGB_base[512] array when processing valid palette PNG images with partial transparency and gamma correction. The PNG files that trigger this vulnerability are valid per the PNG specification; the bug is in libpng's internal state management. Upgrade to libpng 1.6.52 or later.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

