
GeoServer & GeoTools SQL Injection (CVE-2023-25157 & CVE-2023-25158)
Dieses Repository enthält eine detaillierte Beschreibung und Wiederholungsschritte der SQL-Injection-Schwachstellen, die in der GeoServer-Plattform und der GeoTools-Bibliothek gefunden wurden. Die Schwachstelle wurde mit der Kennung CVE-2023-25157 für GeoServer und CVE-2023-25158 für GeoTools versehen.
GeoServer ist ein quelloffener Softwareserver, der in Java geschrieben ist und die Möglichkeit bietet, Geodaten anzuzeigen, zu bearbeiten und zu teilen. Er ist als flexible, effiziente Lösung für die Verteilung von Geodaten aus verschiedenen Quellen wie Geoinformationssystem (GIS)-Datenbanken, webbasierten Daten und persönlichen Datensätzen konzipiert.
GeoServer hält sich an die Standards des Open Geospatial Consortium (OGC) für den Datenaustausch, einschließlich des Web Feature Service (WFS), Web Map Service (WMS) und Web Coverage Service (WCS). Diese Einhaltung von Standards bedeutet, dass Daten von GeoServer in einer Vielzahl von Anwendungen verwendet werden können, von kundenspezifischer GIS-Software bis hin zu Standardlösungen.
GeoServer ist hauptsächlich auf dem Spring Framework aufgebaut, verwendet jedoch auch eine Reihe anderer Libraries und Frameworks, darunter:
GeoTools: Eine quelloffene Java-Bibliothek, die Werkzeuge für Geodaten bereitstellt. GeoServer verwendet GeoTools für viele seiner Kernfunktionen, wie das Lesen, Schreiben und Transformieren von Daten.Die betreffenden Schwachstellen sind tief in den Filter- und Funktionsausdrücken verankert, die durch die Standards des Open Geospatial Consortium (OGC) definiert sind. Diese Ausdrücke bilden das Rückgrat der Abfrage und Manipulation von Geodaten und spielen eine zentrale Rolle in der Funktionalität von Systemen wie GeoServer und GeoTools.
Bei Ausnutzung dieser Schwachstellen kann es zu schwerwiegenden Sicherheitsverletzungen kommen. Die unbefugte Offenlegung von Informationen ist ein Hauptanliegen, da Angreifer potenziell auf in der Datenbank gespeicherte sensible Daten zugreifen können. Eine unbefugte Änderung ist ein weiteres mögliches Ergebnis, bei dem Angreifer Daten zu ihrem Vorteil manipulieren können. Darüber hinaus können diese Schwachstellen auch Dienstunterbrechungen begünstigen, wobei ein erfolgreicher Exploit möglicherweise zur Nichtverfügbarkeit des Dienstes führen kann.
Im Folgenden wird eine eingehende Analyse jeder identifizierten Schwachstelle gegeben. Jede Schwachstelle wird detailliert untersucht, wobei ihre spezifischen Merkmale, die Bedingungen, die zu ihrer Manifestation führen, und die potenziellen Auswirkungen ihrer Ausnutzung diskutiert werden. Hier ist eine detaillierte Aufschlüsselung der für GeoServer gefundenen Schwachstellen:
PropertyIsLike-Filter: Diese Schwachstelle ist vorhanden, wenn der PropertyIsLike-Filter mit einem String-Feld in Verbindung mit einem beliebigen relationalen datenbankbasierten Store, einem PostGIS DataStore mit aktivierten Encode-Funktionen oder einem Bildmosaik mit einem in einer relationalen Datenbank gespeicherten Index verwendet wird.strEndsWith-Funktion: Diese Schwachstelle tritt auf, wenn die strEndsWith-Funktion mit einem PostGIS DataStore mit aktivierten Encode-Funktionen verwendet wird.strStartsWith-Funktion: Diese Schwachstelle tritt auf, wenn die strStartsWith-Funktion mit einem PostGIS DataStore mit aktivierten Encode-Funktionen verwendet wird.FeatureId-Filter: Diese Schwachstelle ist vorhanden, wenn der FeatureId-Filter mit einer Datenbanktabelle mit einer String-Primärschlüsselspalte und deaktivierten Prepared Statements verwendet wird.jsonArrayContains-Funktion: Diese Schwachstelle tritt auf, wenn die jsonArrayContains-Funktion mit einem String- oder JSON-Feld und einem PostGIS- oder Oracle-DataStore verwendet wird (nur in GeoServer 2.22.0 und späteren Versionen).DWithin-Filter: Diese Schwachstelle wird entdeckt, wenn der DWithin-Filter mit einem Oracle DataStore verwendet wird.Und hier ist eine detaillierte Aufschlüsselung der für GeoTools gefundenen Schwachstellen:
PropertyIsLike-Filter:
strEndsWith-Funktion:
strStartsWith-Funktion:
FeatureId-Filter:
jsonArrayContains-Funktion:
DWithin-Filter:
CVE-2023-25157 GeoServer SQL Injection betroffen.CVE-2023-25158 GeoTools SQL Injection betroffen.