Gs-web-app
Уязвимости
4
Эксплуатируемые
1
Макс. CVSS
9.8
Макс. EPSS
0.99813
Распределение по критичности
Критический
1
Высокий
1
Средний
2
Низкий
0
Затронутые диапазоны версий
2.10.0–2.24.4< 2.23.5< 2.23.6
Топ уязвимостей
CVE-2024-36401GeoServer — это открытый сервер, который позволяет пользователям делиться и редактировать геопространственные данные. До версий 2.22.6, 2.23.6, 2.24.4 и 2.25.2 несколько параметров запросов OGC позволяют выполнять удалённый код (RCE) неаутентифицированными пользователями через специально подготовленный ввод против стандартной установки GeoServer из-за небезопасной оценки имен свойств в качестве выражений XPath.
API библиотеки GeoTools, который вызывает GeoServer, оценивает имена свойств/атрибутов для типов объектов таким образом, что небезопасно передает их в библиотеку commons-jxpath, которая может выполнять произвольный код при оценке выражений XPath. Эта оценка XPath предназначена для использования только сложными типами объектов (т.е. хранилищами данных схемы приложений), но неправильно применяется и к простым типам объектов, что делает эту уязвимость применимой ко **ВСЕМ** экземплярам GeoServer. Публичный PoC не предоставлен, но эта уязвимость подтверждена как подлежащая эксплуатации через запросы WFS GetFeature, WFS GetPropertyValue, WMS GetMap, WMS GetFeatureInfo, WMS GetLegendGraphic и WPS Execute. Эта уязвимость может привести к выполнению произвольного кода.
Версии 2.22.6, 2.23.6, 2.24.4 и 2.25.2 содержат исправление этой проблемы. Обходной путь состоит в удалении файла `gt-complex-x.y.jar` из GeoServer, где `x.y` — это версия GeoTools (например, `gt-complex-31.1.jar`, если используется GeoServer 2.25.1). Это удалит уязвимый код из GeoServer, но может нарушить некоторую функциональность GeoServer или помешать его развёртыванию, если модуль gt-complex необходим.
CVE-2024-24749GeoServer — это сервер с открытым исходным кодом, который позволяет пользователям обмениваться геопространственными данными и редактировать их. До версий 2.23.5 и 2.24.3, если GeoServer развернут в операционной системе Windows с использованием сервера веб-приложений Apache Tomcat, можно обойти существующую проверку ввода в классе GeoWebCache ByteStreamController и прочитать произвольные ресурсы classpath с определенными расширениями имен файлов. Если GeoServer также развернут в виде веб-архива с использованием каталога данных, встроенного в файл `geoserver.war` (а не внешнего каталога данных), вероятно, можно будет прочитать определенные ресурсы для получения прав администратора. Однако маловероятно, что производственные среды будут использовать встроенный каталог данных, поскольку, в зависимости от способа развертывания GeoServer, он будет стираться и переустанавливаться (что также приведет к сбросу пароля по умолчанию) либо каждый раз при перезапуске сервера, либо каждый раз при установке нового GeoServer WAR, и поэтому его сложно поддерживать. Внешний каталог данных всегда будет использоваться, если GeoServer работает в автономном режиме (через установщик или бинарный файл). Версии 2.23.5 и 2.24.3 содержат исправление для этой проблемы. Доступны некоторые обходные пути. Можно перейти из среды Windows в среду Linux или с сервера приложений Apache Tomcat на Jetty. Также можно отключить анонимный доступ к встроенным страницам администрирования и статуса GeoWebCache.
CVE-2024-35230GeoServer — это сервер программного обеспечения с открытым исходным кодом, написанный на Java, который позволяет пользователям обмениваться и редактировать геопространственные данные. В уязвимых версиях страница приветствия и страница «О программе» содержат информацию о версии и редакции используемого программного обеспечения (включая используемые библиотеки и компоненты). Эта информация является конфиденциальной с точки зрения безопасности, поскольку позволяет легко идентифицировать программное обеспечение, используемое сервером. Эта проблема была исправлена в версии 2.26.0, и всем пользователям рекомендуется выполнить обновление. Известных обходных путей для этой уязвимости не существует.
CVE-2024-34696GeoServer — это сервер с открытым исходным кодом, который позволяет пользователям совместно использовать и редактировать геопространственные данные. Начиная с версии 2.10.0 и до версий 2.24.4 и 2.25.1, страница состояния сервера GeoServer и REST API перечисляют все переменные среды и свойства Java для любого пользователя GeoServer с правами администратора как часть сообщения о состоянии этих модулей. Эти переменные/свойства также могут содержать конфиденциальную информацию, такую как пароли базы данных или ключи/токены API. Кроме того, многие разработанные сообществом образы контейнеров GeoServer `export` другие учетные данные из своих скриптов запуска в качестве переменных среды для процесса GeoServer (`java`). Точный масштаб проблемы зависит от того, какой образ контейнера используется и как он настроен.
Конечная точка API `about status`, которая поддерживает страницу состояния сервера, доступна только администраторам. В зависимости от операционной среды администраторы могут иметь законный доступ к учетным данным другими способами, но эта проблема сводит на нет более сложные элементы управления (например, доступ к секретам по принципу «разбей стекло» или учетные записи ролей). По умолчанию GeoServer разрешает только аутентифицированный доступ к API из того же источника. Это ограничивает возможность для стороннего злоумышленника использовать учетные данные администратора для получения доступа к учетным данным. Исследователи, обнаружившие уязвимость, не смогли определить какие-либо другие условия, при которых REST API GeoServer может быть доступен в более широком смысле.
Пользователям следует обновить образы контейнеров, чтобы использовать GeoServer 2.24.4 или 2.25.1, чтобы получить исправление ошибки. В качестве обходного пути оставьте переменные среды и свойства системы Java скрытыми по умолчанию. Те, кто предоставляет возможность повторно включить его, должны сообщить о влиянии и рисках, чтобы пользователи могли сделать осознанный выбор.