CVE-2024-8176
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 72 - wyżej niż 72% wszystkich znanych CVE
Streszczenie
Biblioteka libexpat zawiera podatność przepełnienia stosu spowodowaną nieograniczoną rekurencją podczas przetwarzania zagnieżdżonych encji w dokumentach XML. Atakujący może dostarczyć specjalnie spreparowany plik XML, który doprowadzi do wyczerpania stosu i awarii aplikacji.
Ocena ryzyka
Podatność może zostać wykorzystana do przeprowadzenia ataku typu DoS (odmowa usługi) poprzez zdalne wysłanie złośliwego dokumentu XML. W niektórych środowiskach może również prowadzić do nadpisywania pamięci, co stwarza ryzyko dalszej eskalacji uprawnień.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę libexpat do najnowszej wersji, która zawiera poprawkę ograniczającą głębokość rekurencji. W międzyczasie warto wdrożyć walidację dokumentów XML przed ich przetwarzaniem.
Inne podatności w libexpat
Zobacz wszystkie- CVE-2024-45490Wysokie
W bibliotece libexpat przed wersją 2.6.3 odkryto problem, w którym xmlparse.c nie odrzuca ujemnej długości dla funkcji XML_ParseBuffer.
- CVE-2017-11742Wysokie
Funkcja writeRandomBytes_RtlGenRandom w xmlparse.c w libexpat w wersjach 2.2.1 i 2.2.2 na systemie Windows umożliwia lokalnym użytkownikom uzyskanie uprawnień poprzez złośliwy plik ADVAPI32.DLL w bieżącym katalogu roboczym z powodu niezaufanej ścieżki wyszukiwania, co jest znane jako hijacking DLL.
- CVE-2017-9233Wysokie
Podatność typu XML External Entity w bibliotece libexpat w wersji 2.2.0 i wcześniejszych umożliwia atakującym wprowadzenie parsera w nieskończoną pętlę za pomocą źle sformułowanej definicji zewnętrznego bytu z zewnętrznego DTD.
- CVE-2024-50602Średnie
Problem w bibliotece libexpat przed wersją 2.6.4. Funkcja XML_ResumeParser może ulec awarii, jeśli XML_StopParser zatrzyma/zawiesi nieuruchomiony parser.
- CVE-2024-45492Krytyczne
W bibliotece libexpat przed wersją 2.6.3 odkryto problem, który może prowadzić do przepełnienia całkowitego w funkcji nextScaffoldPart w pliku xmlparse.c na platformach 32-bitowych.
- CVE-2024-45491Krytyczne
W libexpat przed wersją 2.6.3 odkryto problem związany z przepełnieniem całkowitym w funkcji dtdCopy w pliku xmlparse.c. Problem ten występuje na platformach 32-bitowych, gdzie UINT_MAX równa się SIZE_MAX.
- CVE-2026-76957Średnie
W libexpat przed wersją 2.8.4 brakuje śledzenia głębokości wywołań handlerów z niestandardowymi callbackami kodowania. Może to prowadzić do użycia po zwolnieniu (use-after-free). Podobne podatności to CVE-2026-50219, CVE-2026-56131 i CVE-2026-56412.
- CVE-2026-76956Średnie
W bibliotece libexpat w wersjach 2.8.2 i 2.8.3 przed 2.8.4 błędna interpretacja kodu zwrotnego funkcji getentropy prowadzi do niewystarczającej entropii, co czyni system podatnym na ataki typu hash flooding, powodujące odmowę usługi poprzez spreparowane treści XML.
- CVE-2026-72522Średnie
W libexpat przed wersją 2.8.3 wykryto podatność na odczyt poza zakresem i wynikającą z tego nieskończoną pętlę, ponieważ niskie surogaty są traktowane tak samo jak wysokie podczas przetwarzania Unicode w funkcjach *_toUtf16.
- CVE-2026-56412Średnie
W bibliotece libexpat przed wersją 2.8.2 nie uwzględniono XML_TOK_DATA_CHARS w funkcji doCdataSection, co prowadzi do braku śledzenia głębokości wywołań handlerów w przypadku naruszenia polityki. Może to skutkować wystąpieniem błędu use-after-free.
Oryginalny opis (angielski, źródło NVD)
A stack overflow vulnerability exists in the libexpat library due to the way it handles recursive entity expansion in XML documents. When parsing an XML document with deeply nested entity references, libexpat can be forced to recurse indefinitely, exhausting the stack space and causing a crash. This issue could lead to denial of service (DoS) or, in some cases, exploitable memory corruption, depending on the environment and library usage.

