W GeoServer istnieje podatność nieprawidłowej walidacji URI, która pozwala nieuwierzytelnionemu atakującemu przeprowadzić atak XML External Entity (XXE) i wysyłać żądania GET do dowolnych serwerów HTTP. Podatność jest krytyczna, ponieważ nie wymaga uwierzytelnienia i umożliwia rozpoznanie infrastruktury wewnętrznej.
▸ Pokaż oryginał (EN)
GeoServer is an open source server that allows users to share and edit geospatial data. An improper URI validation vulnerability exists that enables an unauthorized attacker to perform XML External Entities (XEE) attack, then send GET request to any HTTP server. By default, GeoServer use PreventLocalEntityResolver class from GeoTools to filter out malicious URIs in XML entities before resolving them. The URI must match the regex (?i)(jar:file|http|vfs)[^?#;]*\\.xsd. But the regex leaves a chance for attackers to request to any HTTP server or limited file. Attacker can abuse this to scan internal networks and gain information about them then exploit further. GeoServer 2.25.0 and greater default to the use of ENTITY_RESOLUTION_ALLOWLIST and does not require you to provide a system property.
GeoServer domyślnie używa klasy PreventLocalEntityResolver z biblioteki GeoTools do filtrowania złośliwych URI w encjach XML przed ich rozwiązaniem. Filtr opiera się na wyrażeniu regularnym (?i)(jar:file|http|vfs)[^?#;]*\.xsd, które nie jest wystarczająco restrykcyjne. Atakujący może spreparować URI spełniające wzorzec regex, lecz wskazujące na dowolny serwer HTTP lub określone pliki, omijając w ten sposób zabezpieczenie. Następnie, poprzez żądania GET wysyłane w ramach rozwiązywania encji XML, możliwe jest zbieranie informacji o wewnętrznej sieci (SSRF).
Atakujący może skanować sieci wewnętrzne, uzyskiwać informacje o dostępnych zasobach sieciowych oraz potencjalnie odczytywać ograniczone pliki, co może prowadzić do dalszej eskalacji ataku na infrastrukturę wewnętrzną.
Należy zaktualizować GeoServer do wersji 2.25.0 lub nowszej, która domyślnie wymusza mechanizm ENTITY_RESOLUTION_ALLOWLIST bez konieczności ręcznej konfiguracji parametrów systemowych. W starszych wersjach należy ręcznie skonfigurować właściwość systemową zgodnie z dokumentacją producenta dostępną pod adresem https://docs.geoserver.org/latest/en/user/production/config.html#production-config-external-entities
GeoServer w wersjach starszych niż 2.25.0; wersje 2.25.0 i nowsze domyślnie stosują mechanizm ENTITY_RESOLUTION_ALLOWLIST, który ogranicza to zagrożenie
Podatność dotyczy mechanizmu rozwiązywania encji XML (XXE) w połączeniu z SSRF — atakujący nie musi być uwierzytelniony (PR:N, UI:N), a zakres podatności obejmuje zasoby poza bezpośrednim komponentem (S:C). Wersja 2.25.0 zmienia domyślne zachowanie na bezpieczne poprzez wprowadzenie ENTITY_RESOLUTION_ALLOWLIST.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:NOsgeo Geoserver
APPOsgeo< 2.25.0
Powiązane podatności
XXE w GeoTools/GeoServer/GeoNetwork — podatność XML External Entity
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 versions 2.26...
GeoServer is an open source server that allows users to share and edit geospatial data. Prior to version 2.27....
GeoServer is an open source software server written in Java that allows users to share and edit geospatial dat...