CVE-2025-52885
ŚrednieCVSS 6.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 6 - wyżej niż 6% wszystkich znanych CVE
Streszczenie
Poppler, biblioteka do renderowania plików PDF, zawiera podatność use-after-free (zapis) w klasie StructTreeRoot w wersjach przed 25.10.0. Problem wynika z używania surowych wskaźników do elementów std::vector, które stają się wiszącymi wskaźnikami po realokacji wektora. Wersja 25.10.0 zawiera poprawkę.
Ocena ryzyka
Przetwarzanie specjalnie spreparowanego pliku PDF może prowadzić do uszkodzenia pamięci, awarii aplikacji lub potencjalnego wykonania kodu.
Rekomendacja
Zaktualizuj Poppler do wersji 25.10.0 lub nowszej.
Inne podatności w Poppler
Zobacz wszystkie- CVE-2017-15565Wysokie
W Poppler 0.59.0 występuje podatność na dereferencję wskaźnika NULL w funkcji GfxImageColorMap::getGrayLine() w pliku GfxState.cc, która może być wykorzystana za pomocą spreparowanego dokumentu PDF.
- CVE-2017-14977Wysokie
Funkcja FoFiTrueType::getCFFBlock w Poppler 0.59.0 zawiera podatność na dereferencję wskaźnika NULL z powodu braku walidacji wskaźnika tabeli, co umożliwia atakującemu przeprowadzenie ataku typu denial of service.
- CVE-2017-14976Wysokie
Funkcja FoFiType1C::convertToType0 w Poppler 0.59.0 zawiera podatność na nadmiarowe odczyty bufora w pamięci, gdy napotka indeks słownika czcionek poza zakresem. Może to zostać wykorzystane przez atakującego do przeprowadzenia ataku typu denial of service.
- CVE-2017-14975Wysokie
Funkcja FoFiType1C::convertToType0 w Poppler 0.59.0 zawiera podatność na dereferencję wskaźnika NULL, ponieważ struktura danych nie jest zainicjowana. Umożliwia to atakującemu przeprowadzenie ataku typu denial of service.
- CVE-2017-14929Wysokie
W Poppler 0.59.0 występuje uszkodzenie pamięci w wyniku wywołania funkcji Object::dictLookup() w pliku Object.h, które następuje po powtarzającej się serii wywołań Gfx::display, Gfx::go, Gfx::execOp, Gfx::opFill, Gfx::doPatternFill, Gfx::doTilingPatternFill oraz Gfx::drawForm. Jest to inna podatność niż CVE-2017-14519.
- CVE-2017-14617Wysokie
W Poppler 0.59.0 występuje wyjątek zmiennoprzecinkowy w klasie ImageStream w pliku Stream.cc, co może prowadzić do potencjalnego ataku podczas obsługi złośliwych plików PDF.
- CVE-2017-14520Wysokie
W Poppler 0.59.0 występuje wyjątek zmiennoprzecinkowy w funkcji Splash::scaleImageYuXd() w pliku Splash.cc, co może prowadzić do potencjalnego ataku podczas obsługi złośliwych plików PDF.
- CVE-2017-14519Wysokie
W Poppler 0.59.0 występuje uszkodzenie pamięci w wyniku wywołania funkcji Object::streamGetChar w pliku Object.h, które następuje po powtarzającej się serii wywołań Gfx::display, Gfx::go, Gfx::execOp, Gfx::opShowText oraz Gfx::doShowText (znane jako nieskończona pętla Gfx.cc).
- CVE-2017-14518Wysokie
W Poppler 0.59.0 występuje wyjątek zmiennoprzecinkowy w funkcji isImageInterpolationRequired() w pliku Splash.cc, który może być wywołany przez spreparowany dokument PDF.
- CVE-2017-2820Wysokie
W bibliotece Poppler 0.53.0 występuje podatność na przepełnienie całkowitej liczby w funkcji analizy obrazów JPEG 2000. Otworzenie specjalnie przygotowanego pliku PDF może prowadzić do przepełnienia, co skutkuje nadpisaniem pamięci na stercie i potencjalnym wykonaniem dowolnego kodu.
Oryginalny opis (angielski, źródło NVD)
Poppler ia a library for rendering PDF files, and examining or modifying their structure. A use-after-free (write) vulnerability has been detected in versions Poppler prior to 25.10.0 within the StructTreeRoot class. The issue arises from the use of raw pointers to elements of a `std::vector`, which can lead to dangling pointers when the vector is resized. The vulnerability stems from the way that refToParentMap stores references to `std::vector` elements using raw pointers. These pointers may become invalid when the vector is resized. This vulnerability is a common security problem involving the use of raw pointers to `std::vectors`. Internally, `std::vector `stores its elements in a dynamically allocated array. When the array reaches its capacity and a new element is added, the vector reallocates a larger block of memory and moves all the existing elements to the new location. At this point if any pointers to elements are stored before a resize occurs, they become dangling pointers once the reallocation happens. Version 25.10.0 contains a patch for the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

