Biblioteka libxml2 w wersjach przed 2.9.5 nieprawidłowo obsługuje odwołania do encji parametrycznych w plikach DTD, co może prowadzić do krytycznych błędów pamięci. Podatność sklasyfikowana jest jako CRITICAL z wynikiem CVSS 9.8, co oznacza możliwość zdalnego wykonania kodu bez uwierzytelnienia.
▸ Pokaż oryginał (EN)
parser.c in libxml2 before 2.9.5 mishandles parameter-entity references because the NEXTL macro calls the xmlParserHandlePEReference function in the case of a '%' character in a DTD name.
Problem tkwi w pliku parser.c, gdzie makro NEXTL nieprawidłowo wywołuje funkcję xmlParserHandlePEReference w momencie napotkania znaku '%' w nazwie DTD. Błędna obsługa odwołań do encji parametrycznych powoduje naruszenie zasad zarządzania pamięcią (CWE-119 — nieprawidłowe ograniczenia operacji na buforze pamięci). Atakujący może dostarczyć specjalnie spreparowany plik XML lub DTD, który wyzwoli wadliwy kod ścieżki parsowania.
Skuteczne wykorzystanie podatności może pozwolić atakującemu na zdalne wykonanie kodu (RCE), ujawnienie poufnych danych lub spowodowanie niedostępności aplikacji — wszystko bez konieczności posiadania jakichkolwiek uprawnień.
Należy zaktualizować bibliotekę libxml2 do wersji 2.9.5 lub nowszej. Administratorzy systemów Debian powinni zastosować poprawki ogłoszone w debian-lts-announce z listopada 2017 r. Użytkownicy produktów Oracle powinni zapoznać się z odpowiednim CPU (Critical Patch Update) i zastosować dostępne patche.
Xmlsoft libxml2 w wersjach przed 2.9.5. Podatność dotyczy wszystkich aplikacji i systemów korzystających z tej biblioteki do parsowania XML (m.in. pakiety Debian LTS oraz produkty Oracle wskazane w referencjach).
Poprawka dostępna jest w repozytorium GNOME pod commitem e26630548e7d138d2c560844c43820b6767251e3. Podatność pierwotnie zgłoszona w Bugzilla GNOME jako błąd nr 766956.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HXmlsoft Libxml2
APPXmlsoft≤ 2.9.4
Powiązane podatności
XXE w bibliotece libxml2 — obejście niestandardowych handlerów SAX
Buffer overflow w libxml2 umożliwiający zdalne wykonanie kodu przez błędną obsługę portów przy przekierowaniac...
Libxml2: nieautoryzowane dołączanie zewnętrznych encji XML (XXE)
Buffer over-read w libxml2 — DoS i ujawnienie informacji
RCE i DoS w libxml2 — błąd use-after-free w obsłudze XPointer