Podatności libexpat
39 znanych podatności CVE w libexpat, przetłumaczonych i ocenionych.
- CVE-2026-102633Średnie
W bibliotece libexpat w wersjach 2.7.2 do 2.8.5 występuje przepełnienie liczb całkowitych w funkcji expat_realloc() na platformach 32-bitowych podczas obliczania rozmiarów alokacji. Atakujący dostarczający złośliwy XML do aplikacji parsujących z podatną biblioteką libexpat może spowodować przepełnienie bufora sterty, uszkodzenie pamięci lub odmowę usługi.
- 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-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-2019-15903Wysokie
W libexpat przed wersją 2.2.8, specjalnie spreparowane dane XML mogą spowodować zbyt wczesne przełączenie parsera z trybu DTD na tryb dokumentu, a następnie wywołanie XML_GetCurrentLineNumber lub XML_GetCurrentColumnNumber prowadzi do odczytu poza buforem na stercie.
- 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-2026-124317Średnie
libexpat do wersji 2.10.0 zawiera podatność odczytu poza granicami bufora w funkcjach unknown_toUtf8() i unknown_toUtf16() w pliku xmltok.c podczas obsługi nieznanych kodowań zarejestrowanych przez aplikację. Atakujący może dostarczyć dokument kończący się obciętym wielobajtowym ciągiem, powodując odczyt przez callback konwersji poza bufor parsowania, co prowadzi do wycieku sąsiedniej pamięci lub awarii aplikacji.
- CVE-2026-118370Średnie
W libexpat do wersji 2.9.0 występuje podatność przepełnienia liczb całkowitych ze znakiem w funkcji storeAtts() w pliku lib/xmlparse.c, pozwalająca atakującym wywołać zapisy poza granicami bufora poprzez nadmierną liczbę atrybutów. Atakujący może dostarczyć dokument wielogigabajtowy z tagiem początkowym zawierającym ponad 2^30 atrybutów, aby przepełnić attIndex i nPrefixes, powodując awarię aplikacji lub uszkodzenie pamięci sterty.
- CVE-2026-117610Średnie
W libexpat do wersji 2.9.0 występuje podatność dereferencji wskaźnika NULL w funkcji externalEntityInitProcessor2() w pliku lib/xmlparse.c, która nieprawidłowo obsługuje token XML_TOK_NONE z pustego wejścia. Atakujący kontrolujący podział strumienia na fragmenty może wymusić pusty, niekońcowy pierwszy parse na podparserze encji zewnętrznej, powodując awarię aplikacji przy późniejszym parsowaniu.
- CVE-2026-115506Wysokie
libexpat do wersji 2.9.0 zawiera podatność na odmowę usługi, ponieważ ochrona przed atakiem 'billion laughs' w funkcji accountingDiffTolerated() w xmlparse.c wykrywa amplifikację encji zbyt późno. Atakujący może dostarczyć umiarkowanie duży dokument XML z dużym DTD i zagnieżdżonymi rozwinięciami encji, aby zużyć dziesiątki sekund czasu CPU na każde parsowanie.
- CVE-2026-113351Średnie
Biblioteka libexpat w wersjach 2.7.2–2.9.0 zawiera podatność na atak typu denial of service. Funkcja XML_ParserReset zeruje licznik bezpośrednich bajtów, ale nie koryguje śledzonych alokacji sterty, przez co po przetworzeniu dużego dokumentu kolejne dokumenty na tym samym parserze kończą się błędem XML_ERROR_NO_MEMORY aż do jego odtworzenia.
- CVE-2026-77214Wysokie
libexpat przed commitem 13c5f63 zawiera podatność przepełnienia bufora sterty w xmlparse.c. Funkcja XML_ParseBuffer przesuwa koniec bufora parsowania za pomocą parser->m_bufferEnd += len, używając długości dostarczonej przez wywołującego, która nie jest walidowana względem rozmiaru przydzielonego bufora, co prowadzi do odczytu poza granicami sterty i ujawnienia sąsiedniej pamięci, w tym wskaźników sterty, funkcji libc i kodu, wystarczających do obejścia ASLR.
- 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.
- CVE-2026-56411Średnie
W bibliotece libexpat przed wersją 2.8.2 występuje przepełnienie całkowite w funkcji xmlwf, które może wystąpić podczas przetwarzania deklaracji NOTATION w endDoctypeDecl.
- CVE-2026-56410Średnie
W bibliotece libexpat przed wersją 2.8.2 występuje przepełnienie całkowite w funkcji resolveSystemId, co może prowadzić do nieprzewidzianych zachowań aplikacji.
- CVE-2026-56409Średnie
W bibliotece libexpat przed wersją 2.8.2 występuje przepełnienie całkowite dla nazwy pliku wyjściowego, gdy używana jest opcja -d outputDir.
- CVE-2026-56408Średnie
W bibliotece libexpat przed wersją 2.8.2 występuje przepełnienie całkowite w funkcji copyString.
- CVE-2026-56407Średnie
W bibliotece libexpat przed wersją 2.8.2 występuje przepełnienie całkowite w funkcji doProlog, które jest związane z funkcjami storeEntityValue oraz entity textLen.
- CVE-2026-56406Średnie
W bibliotece libexpat przed wersją 2.8.2 występuje przepełnienie całkowite w funkcji XML_ParseBuffer z powodu braku odpowiedniego sprawdzenia, które było obecne w funkcji XML_Parse.
- CVE-2026-56405Średnie
W bibliotece libexpat przed wersją 2.8.2 występuje przepełnienie całkowite w funkcji getAttributeId.
- CVE-2026-56404Średnie
W wersjach libexpat przed 2.8.2 występuje przepełnienie całkowite w funkcji addBinding.
- CVE-2026-56403Średnie
W wersjach libexpat przed 2.8.2 występuje przepełnienie całkowite w funkcji storeAtts.
- CVE-2026-56132Średnie
W libexpat przed wersją 2.8.2 występuje przepełnienie bufora na stercie w funkcji doProlog w pliku xmlparse.c. Problem ten wynika z niewłaściwego zarządzania reallocacją tablicy pomocniczej, gdy struktury danych są współdzielone pomiędzy parserami.
- CVE-2026-56131Średnie
W bibliotece libexpat przed wersją 2.8.2 brakuje śledzenia głębokości wywołań handlerów dla wywołań XML_ResumeParser w przypadkach naruszenia polityki. Może to prowadzić do sytuacji use-after-free.
- CVE-2026-50219Średnie
libexpat przed wersją 2.8.2 nie śledzi głębokości wywołań handlerów dla wywołań XML_GetBuffer, XML_Parse, XML_ParseBuffer, XML_ParserFree lub XML_ParserReset z wnętrza handlerów w przypadku naruszenia zasad. Może to prowadzić do użycia po zwolnieniu (use-after-free).
- CVE-2026-45186Niskie
W libexpat przed wersją 2.8.1 złożoność obliczeniowa sprawdzania kolizji nazw atrybutów umożliwia atak DoS za pomocą umiarkowanie dużego, spreparowanego wejścia XML.
- CVE-2026-41080Niskie
Podatność w bibliotece libexpat przed wersją 2.8.0 wynika z użycia niewystarczającej entropii, co umożliwia atak typu hash flooding za pomocą spreparowanego dokumentu XML.
- CVE-2026-32778Niskie
W bibliotece libexpat przed wersją 2.7.5 występuje podatność polegająca na wyłuskaniu wskaźnika NULL w funkcji setContext podczas ponownej próby po wcześniejszym błędzie braku pamięci.
- CVE-2026-32777Średnie
Biblioteka libexpat przed wersją 2.7.5 zawiera podatność polegającą na nieskończonej pętli podczas przetwarzania treści DTD. Atakujący może dostarczyć specjalnie spreparowane dane wejściowe, co prowadzi do zawieszenia aplikacji.
- CVE-2026-32776Średnie
W bibliotece libexpat przed wersją 2.7.5 występuje podatność polegająca na dereferencji wskaźnika NULL podczas przetwarzania pustej treści zewnętrznego parametru encji. Może to prowadzić do awarii aplikacji korzystającej z tej biblioteki.
- CVE-2024-8176Wysokie
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.
- 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-2023-52425Wysokie
Biblioteka libexpat w wersjach do 2.5.0 pozwala na atak typu denial of service poprzez wyczerpanie zasobów. Dzieje się tak, gdy duży token wymaga wielokrotnego wypełniania bufora i wielu pełnych ponownych parsowań.
- CVE-2022-43680Wysokie
W bibliotece libexpat do wersji 2.4.9 występuje podatność use-after-free spowodowana zbyt pochopnym niszczeniem współdzielonego DTD w funkcji XML_ExternalEntityParserCreate w sytuacjach braku pamięci.
- CVE-2022-40674Wysokie
W bibliotece libexpat przed wersją 2.4.9 występuje podatność use-after-free w funkcji doContent w pliku xmlparse.c.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

