CVE-2026-113351
ŚrednieCVSS 5.9Streszczenie
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.
Ocena ryzyka
Atakujący może wysłać odpowiednio duży dokument XML, aby trwale zablokować możliwość parsowania kolejnych dokumentów przez aplikację korzystającą z libexpat, powodując odmowę usługi.
Rekomendacja
Zaktualizuj libexpat do wersji nowszej niż 2.9.0 lub zastosuj obejście polegające na odtwarzaniu parsera po każdym resecie. Monitoruj dostępność aktualizacji od dostawcy biblioteki.
Inne podatności w libexpat
Zobacz wszystkie- 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-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.
Oryginalny opis (angielski, źródło NVD)
libexpat 2.7.2 through 2.9.0 contains a denial of service vulnerability because XML_ParserReset zeroes the direct byte count but never offsets tracked heap allocations. Attackers can submit a large XML document so later documents on the same reset parser fail with XML_ERROR_NO_MEMORY until it is recreated.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

