Klasa Schemas w bibliotece GeoTools (gt-xsd-core) nie stosuje poprawnie mechanizmu rozwiązywania encji (EntityResolver) podczas przetwarzania dokumentów XML, co prowadzi do podatności XML External Entity (XXE). Błąd o ocenie krytycznej (CVSS 9.9) może umożliwić zdalnemu atakującemu odczyt poufnych plików z serwera lub wykonanie ataków SSRF bez żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
GeoServer is an open source server that allows users to share and edit geospatial data. GeoTools Schema class use of Eclipse XSD library to represent schema data structure is vulnerable to XML External Entity (XXE) exploit. This impacts whoever exposes XML processing with gt-xsd-core involved in parsing, when the documents carry a reference to an external XML schema. The gt-xsd-core Schemas class is not using the EntityResolver provided by the ParserHandler (if any was configured). This also impacts users of gt-wfs-ng DataStore where the ENTITY_RESOLVER connection parameter was not being used as intended. This vulnerability is fixed in GeoTools 33.1, 32.3, 31.7, and 28.6.1, GeoServer 2.27.1, 2.26.3, and 2.25.7, and GeoNetwork 4.4.8 and 4.2.13.
Biblioteka GeoTools używa klasy Eclipse XSD do reprezentowania struktur schematów XML. Gdy przetwarzany dokument XML zawiera odwołanie do zewnętrznego schematu XML, klasa Schemas nie korzysta z dostarczonego przez ParserHandler obiektu EntityResolver. W konsekwencji zewnętrzne encje XML mogą być rozwiązywane bez ograniczeń, co pozwala atakującemu wstrzyknąć specjalnie spreparowany dokument XML wskazujący na lokalne zasoby serwera lub wewnętrzne adresy sieciowe. Dotyczy to również użytkowników gt-wfs-ng DataStore, gdzie parametr połączenia ENTITY_RESOLVER nie był stosowany zgodnie z przeznaczeniem.
Atakujący może odczytać dowolne pliki z systemu plików serwera (np. hasła, klucze konfiguracyjne) oraz przeprowadzić atak SSRF, wysyłając żądania do wewnętrznych zasobów sieciowych niedostępnych bezpośrednio z Internetu. Podatność ma zasięg wykraczający poza atakowaną aplikację (Scope: Changed), co znacząco podnosi jej krytyczność.
Należy jak najszybciej zaktualizować oprogramowanie do wersji usuniętych podatność: GeoTools 33.1, 32.3, 31.7 lub 28.6.1; GeoServer 2.27.1, 2.26.3 lub 2.25.7; GeoNetwork 4.4.8 lub 4.2.13. Jako obejście tymczasowe zaleca się wyłączenie przetwarzania zewnętrznych encji XML zgodnie z wytycznymi producenta dostępnymi pod adresem: https://docs.geoserver.org/latest/en/user/production/config.html#production-config-external-entities
GeoTools w wersjach wcześniejszych niż 33.1, 32.3, 31.7 i 28.6.1; GeoServer w wersjach wcześniejszych niż 2.27.1, 2.26.3 i 2.25.7; GeoNetwork w wersjach wcześniejszych niż 4.4.8 i 4.2.13. Podatność dotyczy każdego systemu, który przetwarza dokumenty XML z odwołaniami do zewnętrznych schematów z użyciem modułu gt-xsd-core.
Podatność obejmuje dwa typy CWE: CWE-611 (Improper Restriction of XML External Entity Reference — XXE) oraz CWE-918 (Server-Side Request Forgery — SSRF), co wskazuje na dwa odrębne wektory nadużycia tego samego błędu. Wektor CVSS (AV:N/AC:L/PR:N/UI:N/S:C) oznacza brak wymagań co do uwierzytelnienia i interakcji użytkownika, a zmiana zakresu (S:C) odzwierciedla możliwość wpływu na zasoby poza bezpośrednio atakowaną aplikacją.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:LGeotools
APPGeotools33.0< 28.6.129.0 – 31.7 (bez)32.0 – 32.3 (bez)Osgeo Geonetwork
APPOsgeo4.2.0 – 4.2.13 (bez)4.4.0 – 4.4.8 (bez)Osgeo Geoserver
APPOsgeo2.27.0< 2.25.72.26.0 – 2.26.3 (bez)
Powiązane podatności
GeoServer RCE przez niezabezpieczoną ewaluację XPath w parametrach OGC
GeoServer: XXE umożliwiające skanowanie sieci wewnętrznych (SSRF)
GeoTools is an open source Java library that provides tools for geospatial data. GeoTools includes support for...
GeoServer is an open source software server written in Java that allows users to share and edit geospatial dat...
GeoServer is an open source server that allows users to share and edit geospatial data. Prior to version 2.27....