CVE-2017-9047
WysokieStreszczenie
W bibliotece libxml2 odkryto przepełnienie bufora w funkcji xmlSnprintfElementContent, które może prowadzić do zapisu danych poza przydzieloną pamięcią. Problem występuje, gdy sprawdzanie długości bufora nie uwzględnia aktualnej długości po dodaniu prefiksu.
Ocena ryzyka
Wykorzystanie tej podatności może prowadzić do awarii aplikacji korzystających z libxml2, takich jak PHP, co może wpłynąć na dostępność usług w organizacji.
Rekomendacja
Zaleca się aktualizację biblioteki libxml2 do najnowszej wersji, aby usunąć tę podatność oraz przeprowadzenie testów aplikacji w celu wykrycia potencjalnych problemów.
Inne podatności w libxml2
Zobacz wszystkie- CVE-2017-16932Wysokie
W pliku parser.c w libxml2 przed wersją 2.9.5 nie zapobiega się nieskończonej rekurencji w encjach parametrów.
- CVE-2017-7013Wysokie
W niektórych produktach Apple odkryto problem związany z komponentem 'libxml2'. Dotyczy to systemów iOS przed wersją 10.3.3, macOS przed 10.12.6, iCloud przed 6.2.2 na Windows, iTunes przed 12.6.2 na Windows, tvOS przed 10.2.2 oraz watchOS przed 3.2.3.
- CVE-2017-7010Wysokie
W niektórych produktach Apple zidentyfikowano problem związany z komponentem 'libxml2'. Dotyczy on systemów iOS przed wersją 10.3.3, macOS przed wersją 10.12.6, iCloud przed wersją 6.2.2 na Windows, iTunes przed wersją 12.6.2 na Windows oraz tvOS przed wersją 10.2.2.
- CVE-2017-0663Wysokie
W libxml2 występuje podatność na zdalne wykonanie kodu, która może pozwolić atakującemu na wykonanie dowolnego kodu w kontekście procesu bez uprawnień. Problem ten dotyczy aplikacji korzystających z tej biblioteki w systemie Android.
- CVE-2017-9050Wysokie
libxml2 w wersji 20904-GITv2.9.4-16-g0741801 jest podatny na przepełnienie bufora w pamięci w funkcji xmlDictAddString w pliku dict.c. Ta podatność powoduje awarie programów korzystających z libxml2, takich jak PHP. Problem wynika z niekompletnej poprawki dla CVE-2016-1839.
- CVE-2017-9049Wysokie
libxml2 w wersji 20904-GITv2.9.4-16-g0741801 jest podatny na przepełnienie bufora w pamięci w funkcji xmlDictComputeFastKey w pliku dict.c. Ta podatność powoduje awarie programów korzystających z libxml2, takich jak PHP.
- CVE-2017-9048Wysokie
libxml2 w wersji 20904-GITv2.9.4-16-g0741801 jest podatny na przepełnienie bufora na stosie. Funkcja xmlSnprintfElementContent w pliku valid.c może dodać dwa znaki do bufora bez sprawdzenia, czy jego rozmiar na to pozwala.
- CVE-2016-4483Wysokie
Funkcja xmlBufAttrSerializeTxtContent w pliku xmlsave.c w libxml2 pozwala atakującym, zależnie od kontekstu, na spowodowanie odmowy usługi (odczyt poza zakresem i awaria aplikacji) poprzez wartość atrybutu, która nie jest w formacie UTF-8, związane z serializacją.
- CVE-2016-4449Wysokie
W podatności CVE-2016-4449 występuje luka XXE w funkcji xmlStringLenDecodeEntities w pliku parser.c w libxml2 przed wersją 2.9.4. Luka ta, gdy nie jest w trybie walidacji, pozwala atakującym na odczyt dowolnych plików lub spowodowanie odmowy usługi poprzez nieokreślone wektory.
- CVE-2016-4447Wysokie
Funkcja xmlParseElementDecl w libxml2 przed wersją 2.9.4 pozwala na ataki zależne od kontekstu, które mogą prowadzić do odmowy usługi poprzez błędnie skonstruowany plik, co skutkuje błędem odczytu bufora i awarią aplikacji.
Oryginalny opis (angielski, źródło NVD)
A buffer overflow was discovered in libxml2 20904-GITv2.9.4-16-g0741801. The function xmlSnprintfElementContent in valid.c is supposed to recursively dump the element content definition into a char buffer 'buf' of size 'size'. The variable len is assigned strlen(buf). If the content->type is XML_ELEMENT_CONTENT_ELEMENT, then (i) the content->prefix is appended to buf (if it actually fits) whereupon (ii) content->name is written to the buffer. However, the check for whether the content->name actually fits also uses 'len' rather than the updated buffer length strlen(buf). This allows us to write about "size" many bytes beyond the allocated memory. This vulnerability causes programs that use libxml2, such as PHP, to crash.

